Ejemplo n.º 1
0
        /// <summary>
        /// Sets the document error.
        /// </summary>
        /// <param name="documentErrorCollection">The document error collection.</param>
        /// <param name="documentDetail">The document detail.</param>
        /// <param name="logInfo">The log information.</param>
        private static void SetDocumentError(DocumentErrorCollection documentErrorCollection, DocumentDetail documentDetail,
                                             SearchIndexLogInfo logInfo)
        {
            if (documentErrorCollection == null || documentErrorCollection.FailedDocumentCount == 0)
            {
                return;
            }
            var documentError = documentErrorCollection.DocumentErrors.FirstOrDefault(
                d => documentDetail.document.DocumentId.Equals(d.Id, StringComparison.CurrentCultureIgnoreCase));

            if (documentError != null)
            {
                logInfo.Message = documentError.ErrorMessage;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Sends the log.
        /// </summary>
        /// <param name="documentCollection">The document collection.</param>
        /// <param name="isSentForIndexing">if set to <c>true</c> [is sent for indexing].</param>
        /// <param name="documentErrorCollection"></param>
        private void SendLog(DocumentCollection documentCollection, bool isSentForIndexing, DocumentErrorCollection documentErrorCollection = null)
        {
            if (documentCollection == null || documentCollection.documents == null)
            {
                return;
            }
            var message            = isSentForIndexing ? "Sent for indexing." : "Failed to send for indexing.";
            var nativeDocumentList =
                documentCollection.documents.FindAll(
                    n => n.docType == DocumentsetType.NativeSet);

            if (!nativeDocumentList.Any())
            {
                return;
            }

            var searchIndexLogInfos = new List <JobWorkerLog <SearchIndexLogInfo> >();

            try
            {
                foreach (var documentDetail in nativeDocumentList)
                {
                    if (documentDetail.document == null)
                    {
                        continue;
                    }
                    var logInfo = new SearchIndexLogInfo
                    {
                        Information =
                            string.Format("DCN:{0}", documentDetail.document.DocumentControlNumber),
                        DocumentId          = documentDetail.document.DocumentId,
                        DCNNumber           = documentDetail.document.DocumentControlNumber,
                        CrossReferenceField = documentDetail.document.CrossReferenceFieldValue,
                        Message             = message
                    };
                    SetDocumentError(documentErrorCollection, documentDetail, logInfo);
                    if (String.IsNullOrEmpty(documentDetail.CorrelationId))
                    {
                        documentDetail.CorrelationId = "0";
                    }
                    var searchIndexLogInfo = new JobWorkerLog <SearchIndexLogInfo>
                    {
                        JobRunId         = Convert.ToInt32(PipelineId),
                        CorrelationId    = long.Parse(documentDetail.CorrelationId),
                        WorkerInstanceId = WorkerId,
                        WorkerRoleType   = "8A65E2DC-753C-E311-82FA-005056850057",
                        Success          = isSentForIndexing,
                        LogInfo          = logInfo
                    };


                    searchIndexLogInfos.Add(searchIndexLogInfo);
                }
                LogPipe.Open();
                var pipleMessageEnvelope = new PipeMessageEnvelope
                {
                    Body = searchIndexLogInfos
                };
                LogPipe.Send(pipleMessageEnvelope);
            }
            catch (Exception exception)
            {
                exception.AddDbgMsg("Failed to log document details");
                exception.Trace().Swallow();
                ReportToDirector(exception);
            }
        }