Esempio n. 1
0
        public void SearchDocument_DocumentIdNull_Exception()
        {
            var searchDocumentRequest = new SearchDocumentRequest();

            searchDocumentRequest.Version = version;

            var searchDocumentResponse = Fixture.Create <SearchDocumentResponse>();

            var ddmsSearchDocument = Substitute.For <DDMSSearchDocument>();

            var searchDocumentRequest2 = ddmsSearchDocument.DDMSSearch(searchDocumentRequest, LoggerId);

            Assert.IsTrue(searchDocumentRequest2.ErrorMessage == string.Format(ErrorMessage.ValueEmpty, SpoConstants.DocumentId));
        }
Esempio n. 2
0
        public void SearchDocument_AllOldVersions()
        {
            var searchDocumentRequest = new SearchDocumentRequest();

            searchDocumentRequest.DocumentId = documentId;

            var searchDocumentResponse = Fixture.Create <SearchDocumentAllMetaDataVersions>();

            var ddmsSearchDocument = Substitute.For <DDMSSearchDocument>();

            var searchDocumentRequest2 = ddmsSearchDocument.DDMSSearchAllOldVersions(searchDocumentRequest, LoggerId);

            Assert.IsTrue(string.IsNullOrEmpty(searchDocumentRequest2.ErrorMessage));
        }
Esempio n. 3
0
        public void SearchDocument_AllOldVersions_FileNotFound_Exception()
        {
            var searchDocumentRequest = new SearchDocumentRequest();

            searchDocumentRequest.DocumentId = Fixture.Create <Guid>();

            var searchDocumentResponse = Fixture.Create <SearchDocumentAllMetaDataVersions>();

            var ddmsSearchDocument = Substitute.For <DDMSSearchDocument>();

            var searchDocumentRequest2 = ddmsSearchDocument.DDMSSearchAllOldVersions(searchDocumentRequest, LoggerId);

            Assert.IsTrue(searchDocumentRequest2.ErrorMessage == ErrorMessage.FileNotFound);
        }
Esempio n. 4
0
        public void SearchDocument_OldVersion_VersionString()
        {
            var searchDocumentRequest = new SearchDocumentRequest();

            searchDocumentRequest.DocumentId = documentId;
            searchDocumentRequest.Version    = Fixture.Create <string>();

            var searchDocumentResponse = Fixture.Create <SearchDocumentResponse>();

            var ddmsSearchDocument = Substitute.For <DDMSSearchDocument>();

            var searchDocumentRequest2 = ddmsSearchDocument.DDMSSearch(searchDocumentRequest, LoggerId);

            Assert.IsTrue(searchDocumentRequest2.ErrorMessage == ErrorMessage.FileNotFound);
        }
Esempio n. 5
0
        public void SearchDocument_GreaterVersionProvided_Exception()
        {
            var searchDocumentRequest = new SearchDocumentRequest();

            searchDocumentRequest.DocumentId = documentId;
            searchDocumentRequest.Version    = "5.0";

            var searchDocumentResponse = Fixture.Create <SearchDocumentResponse>();

            var ddmsSearchDocument = Substitute.For <DDMSSearchDocument>();

            var searchDocumentRequest2 = ddmsSearchDocument.DDMSSearch(searchDocumentRequest, LoggerId);

            Assert.IsTrue(searchDocumentRequest2.ErrorMessage == ErrorMessage.GreaterVersionProvided);
        }
Esempio n. 6
0
        public void SearchDocument_OldVersion_VersionDecimal()
        {
            var searchDocumentRequest = new SearchDocumentRequest();

            searchDocumentRequest.DocumentId = documentId;
            searchDocumentRequest.Version    = "1.0";

            var searchDocumentResponse = Fixture.Create <SearchDocumentResponse>();

            var ddmsSearchDocument = Substitute.For <DDMSSearchDocument>();

            var searchDocumentRequest2 = ddmsSearchDocument.DDMSSearch(searchDocumentRequest, LoggerId);

            Assert.IsTrue(string.IsNullOrEmpty(searchDocumentRequest2.ErrorMessage));
        }
Esempio n. 7
0
        public void SearchDocument_FileNotFound_Exception()
        {
            var searchDocumentRequest = new SearchDocumentRequest();

            searchDocumentRequest.DocumentId = Fixture.Create <Guid>();
            searchDocumentRequest.Version    = Fixture.Create <decimal>().ToString();

            var searchDocumentResponse = Fixture.Create <SearchDocumentResponse>();

            var ddmsSearchDocument = Substitute.For <DDMSSearchDocument>();

            var searchDocumentRequest2 = ddmsSearchDocument.DDMSSearch(searchDocumentRequest, LoggerId);

            Assert.IsTrue(searchDocumentRequest2.ErrorMessage == ErrorMessage.FileNotFound);
        }
Esempio n. 8
0
        /// <summary>
        /// Method to retrieve a document based on specific version
        /// </summary>
        /// <param name="clientContext">SPO Client Context</param>
        /// <param name="searchDocumentRequest">Request Model for Search Operation</param>
        /// <param name="LoggerId">Message Id used for logging information</param>
        /// <returns></returns>
        private SearchDocumentResponse SearchDocument(ClientContext clientContext, SearchDocumentRequest searchDocumentRequest, string LoggerId)
        {
            SearchDocumentResponse searchDocumentResponse = new SearchDocumentResponse();
            int requestedVersion = 0, currentResponseVersion = 0;

            try
            {
                Log.DebugFormat("In SearchDocument method before calling SearchDocumentCurrentVersion for MessageId - {0}", LoggerId);
                //Check if version passed in request is latest published version
                searchDocumentResponse = SearchDocumentCurrentVersion(clientContext, searchDocumentRequest, LoggerId);
                Log.DebugFormat("In SearchDocument method after calling SearchDocumentCurrentVersion for MessageId - {0}", LoggerId);
                if (string.IsNullOrEmpty(searchDocumentResponse.ErrorMessage))
                {
                    //Get the version in SPO format from request
                    requestedVersion = GetVersionNumber(searchDocumentRequest.Version, LoggerId);
                    //Get the version in SPO format from latest published document
                    currentResponseVersion = GetVersionNumber(searchDocumentResponse.Version, LoggerId);

                    if (requestedVersion <= currentResponseVersion)
                    {
                        Log.DebugFormat("Before calling SearchDocumentByVersion method - requested version is less than major version for MessageId - {0}", LoggerId);
                        //if the version passed in request is not the latest published version
                        if (requestedVersion != currentResponseVersion)
                        {
                            //Get the previous version document content
                            searchDocumentResponse = SearchDocumentByVersion(clientContext, searchDocumentRequest, requestedVersion, LoggerId);
                        }
                    }
                    else
                    {
                        searchDocumentResponse = null;
                        searchDocumentResponse = new SearchDocumentResponse()
                        {
                            ErrorMessage = ErrorMessage.GreaterVersionProvided
                        };
                    }
                }
                Log.DebugFormat("Out SearchDocument method for MessageId - {0}", LoggerId);
            }
            catch (Exception ex)
            {
                Log.ErrorFormat("Exception in SearchDocument method for MessageId - {0} :{1}", LoggerId, ex.Message);
                searchDocumentResponse.ErrorMessage = ex.Message;
            }
            return(searchDocumentResponse);
        }
Esempio n. 9
0
        /// <summary>
        /// Method to Search a document
        /// </summary>
        /// <param name="searchDocumentRequest">Request model for Search operation</param>
        /// <param name="LoggerId">Message Id used for logging information</param>
        /// <returns></returns>
        public SearchDocumentResponse DDMSSearch(SearchDocumentRequest searchDocumentRequest, string LoggerId)
        {
            SearchDocumentResponse searchDocumentResponse = new SearchDocumentResponse();
            SecureString           secureString           = null;

            try
            {
                Log.DebugFormat("In DDMSSearch method for MessageId - {0}", LoggerId);
                if (searchDocumentRequest.DocumentId != Guid.Empty)
                {
                    using (ClientContext clientContext = new ClientContext(ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOSiteURL)))
                    {
                        //Get SPO Credentials
                        secureString = new NetworkCredential("", CommonHelper.Decrypt(ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOPassword),
                                                                                      ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOPasswordKey),
                                                                                      ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOPasswordIv))).SecurePassword;
                        //Decrypt the user name and password information
                        String username = CommonHelper.Decrypt(ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOUserName),
                                                               ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOUserNameKey),
                                                               ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOUserNameIv));

                        clientContext.Credentials = new SharePointOnlineCredentials(username, secureString);

                        if ((!string.IsNullOrEmpty(searchDocumentRequest.Version) && !string.IsNullOrWhiteSpace(searchDocumentRequest.Version)))
                        {
                            //if version number is passed in request object
                            searchDocumentResponse = SearchDocument(clientContext, searchDocumentRequest, LoggerId);
                        }
                    }
                }
                else
                {
                    Log.DebugFormat("In DDMSSearch method DocumentId is empty for MessageId - {0}", LoggerId);
                    searchDocumentResponse.ErrorMessage = string.Format(ErrorMessage.ValueEmpty, SpoConstants.DocumentId);
                }
                Log.DebugFormat("Out of DDMSSearch method for MessageId - {0}", LoggerId);
            }
            catch (Exception e)
            {
                Log.ErrorFormat("Exception in DDMSSearch method for MessageId - {0} :{1}", LoggerId, e.Message);
                searchDocumentResponse.ErrorMessage = e.Message;
            }
            return(searchDocumentResponse);
        }
Esempio n. 10
0
        public IEnumerable <SearchDocumentResponse> Get([FromUri] SearchDocumentRequest value)
        {
            var userIdentity = (PublicationsIdentity)HttpContext.Current.User.Identity;

            return(Mapper.Map <System.Collections.Generic.IEnumerable <SearchDocumentResponse> >(_documentService.SearchDocuments(value.SearchingTerm, value.ParentFolderID, userIdentity.UserID)));
        }
Esempio n. 11
0
        /// <summary>
        /// Method to fetch all the versions metadata
        /// </summary>
        /// <param name="searchDocumentRequest">Request model for Search Operation</param>
        /// <param name="LoggerId">Message Id used for logging information</param>
        /// <returns></returns>
        public SearchDocumentAllMetaDataVersions DDMSSearchAllOldVersions(SearchDocumentRequest searchDocumentRequest, string LoggerId)
        {
            SearchDocumentAllMetaDataVersions searchDocumentAllMetaDataVersions = new SearchDocumentAllMetaDataVersions();
            //create a list of search response
            List <SearchDocumentAllVersionsResponse> listSearchDocumentResponse = new List <SearchDocumentAllVersionsResponse>();
            SecureString secureString = null;

            try
            {
                Log.DebugFormat("In DDMSSearchAllOldVersions method for MessageId - {0}", LoggerId);
                using (ClientContext clientContext = new ClientContext(ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOSiteURL)))
                {
                    //Get SPO credentials
                    secureString = new NetworkCredential("", CommonHelper.Decrypt(ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOPassword),
                                                                                  ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOPasswordKey),
                                                                                  ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOPasswordIv))).SecurePassword;

                    //Decrypt the user name and password information
                    String username = CommonHelper.Decrypt(ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOUserName),
                                                           ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOUserNameKey),
                                                           ConfigurationManager.AppSettings.Get(ConfigurationConstants.SPOUserNameIv));

                    clientContext.Credentials = new SharePointOnlineCredentials(username, secureString);

                    //retrieve file based on DocumentId
                    Microsoft.SharePoint.Client.File file = clientContext.Web.GetFileById(searchDocumentRequest.DocumentId);

                    //load list item fields
                    ListItem listItem = file.ListItemAllFields;

                    //load all the list item versions
                    ListItemVersionCollection versions = listItem.Versions;
                    clientContext.Load(file);

                    //fetch the specific metadata
                    clientContext.Load(listItem, item => item[SpoConstants.Name],
                                       item => item[SpoConstants.DealerNumber],
                                       item => item[SpoConstants.RequestUser],
                                       item => item[SpoConstants.Version]);
                    clientContext.Load(versions);
                    clientContext.ExecuteQueryWithRetry(Convert.ToInt32(ConfigurationManager.AppSettings.Get(ExecuteQueryConstants.RetryCount)),
                                                        Convert.ToInt32(ConfigurationManager.AppSettings.Get(ExecuteQueryConstants.RetryDelayTime)),
                                                        LoggerId);
                    Log.DebugFormat("In DDMSSearchAllOldVersions method after ExecuteQueryWithRetry for MessageId - {0}", LoggerId);
                    //loop through all versions and fetch metadata
                    foreach (var version in versions)
                    {
                        //assign the metadata of each version to search document response model
                        SearchDocumentAllVersionsResponse searchDocumentResponse = new SearchDocumentAllVersionsResponse();
                        foreach (var item in version.FieldValues)
                        {
                            if (item.Key == SpoConstants.Name && item.Value != null)
                            {
                                searchDocumentResponse.DocumentName = item.Value.ToString();
                            }
                            if (item.Key == SpoConstants.DealerNumber && item.Value != null)
                            {
                                searchDocumentResponse.DealerNumber = item.Value.ToString();
                            }
                            if (item.Key == SpoConstants.RequestUser && item.Value != null)
                            {
                                searchDocumentResponse.RequestUser = item.Value.ToString();
                            }
                            if (item.Key == SpoConstants.Version && item.Value != null)
                            {
                                searchDocumentResponse.Version = item.Value.ToString();
                            }
                        }
                        listSearchDocumentResponse.Add(searchDocumentResponse);
                    }
                }
                Log.DebugFormat("Out of DDMSSearchAllOldVersions method for MessageId - {0}", LoggerId);
                searchDocumentAllMetaDataVersions.SearchMetadata = listSearchDocumentResponse;
            }
            catch (WebException e) when(e.Status == WebExceptionStatus.NameResolutionFailure)
            {
                Log.ErrorFormat("WebException in DDMSSearchAllOldVersions method for MessageId - {0} :{1}", LoggerId, e.Message);
                searchDocumentAllMetaDataVersions.ErrorMessage = ErrorMessage.RemoteName;
            }
            catch (ServerException ex)
            {
                Log.ErrorFormat("ServerException in DDMSSearchAllOldVersions method for MessageId - {0} :{1}", LoggerId, ex.Message);
                if (ex.ServerErrorTypeName == ErrorException.SystemIoFileNotFound)
                {
                    searchDocumentAllMetaDataVersions.ErrorMessage = ErrorMessage.FileNotFound;
                }
                else
                {
                    searchDocumentAllMetaDataVersions.ErrorMessage = ex.Message;
                }
            }
            catch (Exception ex)
            {
                Log.ErrorFormat("Exception in DDMSSearchAllOldVersions method for MessageId - {0} :{1}", LoggerId, ex.Message);
                searchDocumentAllMetaDataVersions.ErrorMessage = ex.Message;
            }
            return(searchDocumentAllMetaDataVersions);
        }
Esempio n. 12
0
        /// <summary>
        /// Method to retrieve document if it is latest published version
        /// </summary>
        /// <param name="clientContext">SPO Client Context</param>
        /// <param name="searchDocumentRequest">Request model for Search Operation</param>
        /// <param name="LoggerId">Message Id used for logging information</param>
        /// <returns></returns>
        private SearchDocumentResponse SearchDocumentCurrentVersion(ClientContext clientContext, SearchDocumentRequest searchDocumentRequest, string LoggerId)
        {
            SearchDocumentResponse searchDocumentResponse = new SearchDocumentResponse();

            try
            {
                Log.DebugFormat("In SearchDocumentCurrentVersion method for MessageId - {0}", LoggerId);
                //Retrieve file based on documentid
                Microsoft.SharePoint.Client.File file = clientContext.Web.GetFileById(searchDocumentRequest.DocumentId);
                //Fetch the list item fields
                ListItem oListItem = file.ListItemAllFields;
                clientContext.Load(file);
                //Load the specific metadata of the file
                clientContext.Load(oListItem, item => item[SpoConstants.Name],
                                   item => item[SpoConstants.DealerNumber],
                                   item => item[SpoConstants.RequestUser],
                                   item => item[SpoConstants.Version]);
                ClientResult <Stream> clientResult = file.OpenBinaryStream();
                clientContext.ExecuteQueryWithRetry(Convert.ToInt32(ConfigurationManager.AppSettings.Get(ExecuteQueryConstants.RetryCount)),
                                                    Convert.ToInt32(ConfigurationManager.AppSettings.Get(ExecuteQueryConstants.RetryDelayTime)),
                                                    LoggerId);
                Log.DebugFormat("In SearchDocumentCurrentVersion after ExecuteQueryWithRetry method for MessageId - {0}", LoggerId);
                using (MemoryStream mStream = new MemoryStream())
                {
                    if (clientResult != null)
                    {
                        clientResult.Value.CopyTo(mStream);
                        //Read the file content and assign to response model
                        searchDocumentResponse.DocumentContent = mStream.ToArray();
                        searchDocumentResponse.DocumentName    = file.Name.ToString();

                        //Add file metadata in search response
                        foreach (var item in oListItem.FieldValues)
                        {
                            if (item.Key == SpoConstants.Name && item.Value != null)
                            {
                                searchDocumentResponse.DocumentName = item.Value.ToString();
                            }
                            if (item.Key == SpoConstants.DealerNumber && item.Value != null)
                            {
                                searchDocumentResponse.DealerNumber = item.Value.ToString();
                            }
                            if (item.Key == SpoConstants.RequestUser && item.Value != null)
                            {
                                searchDocumentResponse.RequestUser = item.Value.ToString();
                            }
                            if (item.Key == SpoConstants.Version && item.Value != null)
                            {
                                searchDocumentResponse.Version = item.Value.ToString();
                            }
                        }
                    }
                }
                Log.DebugFormat("Out of SearchDocumentCurrentVersion method for MessageId - {0}", LoggerId);
            }
            catch (WebException e) when(e.Status == WebExceptionStatus.NameResolutionFailure)
            {
                Log.ErrorFormat("WebException in SearchDocumentCurrentVersion method for MessageId - {0} :{1}", LoggerId, e.Message);
                searchDocumentResponse.ErrorMessage = ErrorMessage.RemoteName;
            }
            catch (ServerException ex)
            {
                Log.ErrorFormat("ServerException in SearchDocumentCurrentVersion method for MessageId - {0} :{1}", LoggerId, ex.Message);
                if (ex.ServerErrorTypeName == ErrorException.SystemIoFileNotFound)
                {
                    searchDocumentResponse.ErrorMessage = ErrorMessage.FileNotFound;
                }
                else
                {
                    searchDocumentResponse.ErrorMessage = ex.Message;
                }
            }
            catch (Exception ex)
            {
                Log.ErrorFormat("Exception in SearchDocumentCurrentVersion method for MessageId - {0} :{1}", LoggerId, ex.Message);
                searchDocumentResponse.ErrorMessage = ex.Message;
            }
            return(searchDocumentResponse);
        }
Esempio n. 13
0
        public IHttpActionResult SearchDocument(Guid documentId, string version = null)
        {
            Guid messageId;
            Dictionary <string, dynamic> keyValuePairs;

            //Retrieve the header parameters from request object
            RetrieveHeaders(out keyValuePairs, out messageId);
            SearchDocumentRequest  searchDocumentRequest  = new SearchDocumentRequest();
            SearchDocumentResponse searchDocumentResponse = new SearchDocumentResponse();

            try
            {
                Log.DebugFormat("In api/SearchDocument method for MessageId - {0}", messageId.ToString());
                searchDocumentRequest.DocumentId = documentId;
                searchDocumentRequest.Version    = version;

                if (searchDocumentRequest.DocumentId != Guid.Empty)
                {
                    //If documentid is not empty and version number is not passed retrieve the document metadata
                    if ((string.IsNullOrEmpty(searchDocumentRequest.Version) || string.IsNullOrWhiteSpace(searchDocumentRequest.Version)))
                    {
                        //Create a new SearchDocumentAllMetadataVersions model object
                        SearchDocumentAllMetaDataVersions searchDocumentAllMetaDataVersions = new SearchDocumentAllMetaDataVersions();
                        try
                        {
                            Log.DebugFormat("In api/SearchDocument, before calling DDMSSearchAllOldVersions method for MessageId - {0} Document ID :{1}", messageId.ToString(), searchDocumentRequest.DocumentId.ToString());
                            //To fetch document metadata for all versions
                            searchDocumentAllMetaDataVersions = ddmsSearchDocument.DDMSSearchAllOldVersions(searchDocumentRequest, messageId.ToString());
                            Log.DebugFormat("In api/SearchDocument, after calling DDMSSearchAllOldVersions method for MessageId - {0} Document ID :{1}", messageId.ToString(), searchDocumentRequest.DocumentId.ToString());
                            if (string.IsNullOrEmpty(searchDocumentAllMetaDataVersions.ErrorMessage))
                            {
                                //Add headers to response message
                                keyValuePairs.Add(HeaderConstants.ErrorCode, (int)HttpStatusCode.OK);
                                keyValuePairs.Add(HeaderConstants.Status, HeaderValueConstants.Success);
                                foreach (var field in keyValuePairs)
                                {
                                    if (!string.IsNullOrEmpty(field.Value.ToString()) && !string.IsNullOrWhiteSpace(field.Value.ToString()))
                                    {
                                        HttpContext.Current.Response.Headers.Add(field.Key, field.Value.ToString());
                                    }
                                }
                                return(Content(HttpStatusCode.OK, searchDocumentAllMetaDataVersions));
                            }

                            //Search based on documentid is not successful - file not found
                            if (searchDocumentAllMetaDataVersions.ErrorMessage == ErrorMessage.FileNotFound)
                            {
                                AddErrorResponseHeaders(keyValuePairs, (int)HttpStatusCode.NotFound, ErrorMessage.FileNotFound);
                                return(Content(HttpStatusCode.NotFound, searchDocumentAllMetaDataVersions));
                            }
                            else
                            {
                                //Any other failures/exceptions in search functionality
                                AddErrorResponseHeaders(keyValuePairs, (int)HttpStatusCode.InternalServerError, searchDocumentAllMetaDataVersions.ErrorMessage);
                                return(Content(HttpStatusCode.InternalServerError, searchDocumentAllMetaDataVersions));
                            }
                        }
                        catch (Exception e)
                        {
                            Log.ErrorFormat("Error in api/SearchDocument DDMSSearch method for MessageId - {0} :{ 1}", messageId.ToString(), e.Message);
                            searchDocumentAllMetaDataVersions.ErrorMessage = e.Message;
                            AddErrorResponseHeaders(keyValuePairs, (int)HttpStatusCode.InternalServerError, searchDocumentAllMetaDataVersions.ErrorMessage);
                            return(Content(HttpStatusCode.InternalServerError, searchDocumentAllMetaDataVersions));
                        }
                    }

                    try
                    {
                        Log.DebugFormat("In api/SearchDocument, before calling DDMSSearch method for MessageId - {0} - Document ID :{1} Version :{2}", messageId.ToString(), searchDocumentRequest.DocumentId.ToString(), searchDocumentRequest.Version);
                        //Fetch the document based on documentid and version number
                        searchDocumentResponse = ddmsSearchDocument.DDMSSearch(searchDocumentRequest, messageId.ToString());
                        Log.DebugFormat("In api/SearchDocument, after calling DDMSSearch method for MessageId - {0} - Document ID :{1} Version :{2}", messageId.ToString(), searchDocumentRequest.DocumentId.ToString(), searchDocumentRequest.Version);

                        if (string.IsNullOrEmpty(searchDocumentResponse.ErrorMessage))
                        {
                            keyValuePairs.Add(HeaderConstants.ErrorCode, (int)HttpStatusCode.OK);
                            keyValuePairs.Add(HeaderConstants.Status, HeaderValueConstants.Success);
                            foreach (var field in keyValuePairs)
                            {
                                if (!string.IsNullOrEmpty(field.Value.ToString()) && !string.IsNullOrWhiteSpace(field.Value.ToString()))
                                {
                                    HttpContext.Current.Response.Headers.Add(field.Key, field.Value.ToString());
                                }
                            }
                            return(Content(HttpStatusCode.OK, searchDocumentResponse));
                        }
                        //Add error response file not found
                        if (searchDocumentResponse.ErrorMessage == ErrorMessage.FileNotFound)
                        {
                            AddErrorResponseHeaders(keyValuePairs, (int)HttpStatusCode.NotFound, ErrorMessage.FileNotFound);
                            return(Content(HttpStatusCode.NotFound, searchDocumentResponse));
                        }
                        else
                        {
                            AddErrorResponseHeaders(keyValuePairs, (int)HttpStatusCode.InternalServerError, searchDocumentResponse.ErrorMessage);
                            return(Content(HttpStatusCode.InternalServerError, searchDocumentResponse));
                        }
                    }
                    catch (Exception ex)
                    {
                        Log.ErrorFormat("Error in api/SearchDocument DDMSSearch method for MessageId - {0} :{1}", messageId.ToString(), ex.Message);
                        searchDocumentResponse.ErrorMessage = ex.Message;
                        AddErrorResponseHeaders(keyValuePairs, (int)HttpStatusCode.InternalServerError, searchDocumentResponse.ErrorMessage);
                        return(Content(HttpStatusCode.InternalServerError, searchDocumentResponse));
                    }
                }
                else
                {
                    Log.DebugFormat("In api/SearchDocument, DocumentId is empty for MessageId - {0} - Document ID :{1}", messageId.ToString(), searchDocumentRequest.DocumentId.ToString());
                    AddErrorResponseHeaders(keyValuePairs, (int)HttpStatusCode.InternalServerError, string.Format(ErrorMessage.ValueEmpty, "documentId"));
                    return(Content(HttpStatusCode.BadRequest, string.Format(ErrorMessage.ValueEmpty, "documentId")));
                }
            }
            catch (Exception ex)
            {
                Log.ErrorFormat("Error in api/SearchDocument for MessageId - {0} :{1}", messageId.ToString(), ex.Message);

                AddErrorResponseHeaders(keyValuePairs, (int)HttpStatusCode.InternalServerError, ex.Message);
                return(Content(HttpStatusCode.InternalServerError, ex.Message));
            }
        }