Sample DLL file for Documentum integration
using System.Collections.Generic;
using System.IO;
namespace Oracle.Argus.Bridge.Service.Contracts
{
/// <summary>
/// Document adapter template that the integration hub will use to query the content management system.
/// </summary>
public interface IDocumentAdapter
{
/// <summary>
/// Logger interface for debugging. Bridge API will provide a wrapper to existing Argus logging functionality.
/// </summary>
ILogger Logger { get; set; }
/// <summary>
/// Dictionary containing adapter configuration details to connect to content management system.
/// </summary>
string DictionaryConfig { set; }
/// <summary>
/// Checks if the adapter can connect to the third-party content management system.
/// </summary>
/// <returns></returns>
bool IsAlive();
/// <summary>
/// Pushes the document object into the content management system.
/// </summary>
/// <param name="attributes">Special attributes that help describe the document</param>
/// <param name="fileData">File byte array data</param>
/// <param name="fileName">Complete title of a file and file extension</param>
/// <returns>ID of newly created document object</returns>
string PushDocAsync(IDictionary<string, object> attributes, byte[] fileData, string fileName);
/// <summary>
/// Fetches the file data from content management system.
/// </summary>
/// <param name="ecmId">ID of document object</param>
/// <returns>Stream of file data of document object</returns>
Stream RetrieveDoc(string ecmId);
/// <summary>
/// Fetches the file data from content management system.
/// </summary>
/// <param name="ecmIds">Array of IDs of document object</param>
/// <returns>Byte array of file data of document objects</returns>
IEnumerable<byte[]> RetrieveMultiDoc(string[] ecmIds);
/// <summary>
/// Updates the special attributes of a document object.
/// </summary>
/// <param name="ecmId">ID of document object</param>
/// <param name="dictAttr">Any combination of special attributes</param>
/// <returns></returns>
string UpdateDocAsync(string ecmId, IDictionary<string, object> dictAttr);
/// <summary>
/// Searches document objects with search request.
/// </summary>
/// <param name="dictSearchAttr">Any combination of special attributes</param>
/// <param name="lstDisplayAttr">List of document attributes to attach with search record</param>
/// <returns>IDs and display attribute values of matching document objects</returns>
IList<IDictionary<string, object>> SearchDoc(IDictionary<string, object> dictSearchAttr, IList<string> lstDisplayAttr);
/// <summary>
/// Deletes the document object from content management system.
/// </summary>
/// <param name="ecmId">ID of document object</param>
/// <returns>Status of deletion</returns>
string DeleteDocAsync(string ecmId);
}
}