Esempio n. 1
0
        private async Task InnitDB(CancellationToken cancellationToken)
        {
            var context = new TagLogContext(FileName);

            var storedInfo = await context.TagLogInfo.ToListAsync(cancellationToken).ConfigureAwait(false);

            foreach (var cfg in Configs)
            {
                var storedTagLogInfo = context.TagLogInfo.FirstOrDefault(e =>
                                                                         e.FacilityAccessName == cfg.TagLogInfo.FacilityAccessName &&
                                                                         e.DeviceName == cfg.TagLogInfo.DeviceName &&
                                                                         e.TagName == cfg.TagLogInfo.TagName);

                if (storedTagLogInfo == default)
                {
                    storedTagLogInfo = new TagLogInfo
                    {
                        FacilityAccessName = cfg.TagLogInfo.FacilityAccessName,
                        DeviceName         = cfg.TagLogInfo.DeviceName,
                        TagName            = cfg.TagLogInfo.TagName,
                    };
                    context.TagLogInfo.Add(storedTagLogInfo);
                    storedInfo.Add(storedTagLogInfo);
                }
                cfg.TagLogInfo = storedTagLogInfo;
            }

            await context.SaveChangesAsync(cancellationToken).ConfigureAwait(false);

            context.Dispose();
        }
        /// <summary>
        /// Creating logs to send logging worker.
        /// </summary>
        /// <param name="originalDocuments"></param>
        /// <param name="failedDocuments"></param>
        /// <param name="bulkTagRecord"></param>
        private List <JobWorkerLog <TagLogInfo> > CreateLogs(List <BulkDocumentInfoBEO> originalDocuments,
                                                             IEnumerable <KeyValuePair <string, string> > failedDocuments,
                                                             BulkTagRecord bulkTagRecord)
        {
            var jobWorkerLogs = new List <JobWorkerLog <TagLogInfo> >();

            foreach (var failedDocument in failedDocuments)
            {
                var documentLog = originalDocuments.Find(d => d.DocumentId == failedDocument.Key);
                if (null == documentLog)
                {
                    continue;
                }

                var logInfo = new TagLogInfo
                {
                    Information = string.Format("{0} : {1}", documentLog.DCN, failedDocument.Value),
                    IsFailureInDatabaseUpdate = false,
                    IsFailureInSearchUpdate   = true,
                    DocumentControlNumber     = documentLog.DCN,
                    DocumentId = failedDocument.Key,
                };

                var jobWorkerLog = new JobWorkerLog <TagLogInfo>
                {
                    JobRunId         = Convert.ToInt32(PipelineId),
                    WorkerInstanceId = WorkerId,
                    WorkerRoleType   = WorkerRoletype,
                    Success          = false,
                    IsMessage        = false,
                    LogInfo          = logInfo
                };
                jobWorkerLogs.Add(jobWorkerLog);
                if (!bulkTagRecord.Notification.DocumentsFailed.Exists(d => d == failedDocument.Key))
                {
                    bulkTagRecord.Notification.DocumentsFailed.Add(failedDocument.Key);
                }
            }
            return(jobWorkerLogs);
        }