Пример #1
0
 private void UpdateWorkflow(Int64 workflowId, int status)
 {
     try
     {
         JobWorkflow workFlow = _serviceJobWorkFlow.GetByWorkflowId(workflowId);
         if (workFlow != null)
         {
             workFlow.EndDate  = DateTime.Now;
             workFlow.StatusId = status;
             _serviceJobWorkFlow.Update(workFlow);
         }
         _serviceJobWorkFlow.Save();
     }
     catch (Exception ex) { AppLogManager(new StringBuilder("UpdateWorkflow Task Manager Send"), "Error", new StringBuilder(ex.Message)); }
 }
Пример #2
0
        private void RaiseAndSendUprdRequest(Pipeline pipe, bool isOacy, bool isUnsc, bool isSwnt, bool isTest, bool sendManu)
        {
            try
            {
                Guid       transactionId = Guid.NewGuid();
                TaskMgrJob job           = new TaskMgrJob();
                job.TransactionId = transactionId.ToString();
                job.DatasetId     = 11;
                job.CreatedAt     = DateTime.Now;
                job.EDICheckCount = 0;
                job.EndDate       = DateTime.MaxValue;
                job.StartDate     = DateTime.Now;
                job.IsSending     = true;
                job.StageId       = 3;
                job.StatusId      = 2;
                job.NoOfXmlInEDI  = 0;
                _serviceTaskMgrJob.Add(job);
                _serviceTaskMgrJob.Save();

                Outbox outbox = new Outbox();
                outbox.MessageID     = transactionId;
                outbox.DatasetID     = 11;
                outbox.StatusID      = 0;
                outbox.GISB          = "";
                outbox.IsTest        = isTest;
                outbox.PipelineID    = pipe.ID;
                outbox.CompanyID     = 2;
                outbox.IsScheduled   = false;
                outbox.ScheduledDate = DateTime.MaxValue;
                outbox.IsActive      = true;
                outbox.CreatedBy     = "8f76c512-199c-47f0-8d9e-1653d4e200dd";
                outbox.CreatedDate   = DateTime.Now;
                outbox.ModifiedBy    = "8f76c512-199c-47f0-8d9e-1653d4e200dd";
                outbox.ModifiedDate  = DateTime.Now;
                _serviceOutbox.Add(outbox);
                _serviceOutbox.Save();

                #region Edi Generation
                Int64 workFlowId = Int64.MinValue;
                AddUpdateTransactionLog(job.TransactionId, (int)Statuses.InProgress);
                JobWorkflow workFlow = new JobWorkflow();
                workFlow.EndDate       = DateTime.MaxValue;
                workFlow.StageId       = (int)SendingStages.XML;
                workFlow.StartDate     = DateTime.Now;
                workFlow.StatusId      = (int)Statuses.InProgress;
                workFlow.TransactionId = Guid.Parse(job.TransactionId);
                _serviceJobWorkFlow.Add(workFlow);
                _serviceJobWorkFlow.Save();
                workFlowId = workFlow.WorkflowId;
                var pipelineEdiSetting = _modalFactory.Parse(_servicePipelineEdiSetting.GetPipelineSetting(pipe.DUNSNo, (int)DataSet.Upload_of_Requests_for_Download_of_Posted_Datasets, "078711334"));
                if (pipelineEdiSetting != null)
                {
                    UPRD_GN ediGen  = new UPRD_GN();
                    var     ediFile = ediGen.GenerateEDIUPRD(isOacy, isUnsc, isSwnt, isTest, pipe.DUNSNo, pipelineEdiSetting, sendManu);
                    if (!string.IsNullOrEmpty(ediFile.ToString()))
                    {
                        var    r         = ediFile.Segments.Where(a => a.Id.Contains("BIA")).FirstOrDefault();
                        string requestID = !string.IsNullOrEmpty(r.Elements[2].ToString()) ? r.Elements[2].ToString() : string.Empty;

                        #region add UPRD status
                        UPRDStatus uprdStatus = new UPRDStatus();
                        uprdStatus.TransactionId = outbox.MessageID;
                        uprdStatus.RequestID     = requestID;
                        uprdStatus.CreatedDate   = DateTime.Now;
                        if (isOacy)
                        {
                            uprdStatus.DatasetRequested = (int)DataSet.Operational_Capacity;
                            uprdStatus.DatasetSummary   = "OACY";
                        }
                        if (isUnsc)
                        {
                            uprdStatus.DatasetRequested = (int)DataSet.Unsubscribed_Capacity;
                            uprdStatus.DatasetSummary   = "UNSC";
                        }
                        if (isSwnt)
                        {
                            uprdStatus.DatasetRequested = (int)DataSet.System_Wide_Notices;
                            uprdStatus.DatasetSummary   = "SWNT";
                        }
                        uprdStatus.PipeDuns = pipe.DUNSNo;
                        _serviceUprdStatus.Add(uprdStatus);
                        _serviceUprdStatus.Save();
                        #endregion

                        SaveXmlToDB(job.TransactionId, pipe.ID, null, ediFile.ToString(), null, null);
                        UpdateJobStatus(job.TransactionId, (int)Statuses.Completed, (int)SendingStages.EDI);
                        UpdateWorkflow(workFlowId, (int)Statuses.Completed);
                    }
                    else
                    {
                        UpdateJobStatus(job.TransactionId, (int)Statuses.Error, (int)SendingStages.EDI);
                        UpdateWorkflow(workFlowId, (int)Statuses.Error);
                    }
                }
                else
                {
                    SaveErrorLogs("Generate EDI UPRD Task Manager Send " + job.TransactionId + " Pipeline EDI Setting is null. for pipeline " + pipe.Name + " DunsNo:- " + pipe.DUNSNo, Guid.Parse(job.TransactionId), workFlowId, (int)SendingStages.EDI);
                    AppLogManager(new StringBuilder("Generate EDI UPRD Task Manager Send " + job.TransactionId), "Error", new StringBuilder("Pipeline EDI setting in Null for UPRD file for pipeline " + pipe.Name + " Duns NO " + pipe.DUNSNo));
                    UpdateJobStatus(job.TransactionId, (int)Statuses.Error, (int)SendingStages.EDI);
                    UpdateWorkflow(workFlowId, (int)Statuses.Error);
                }
                #endregion
                #region Encryption
                workFlow               = new JobWorkflow();
                workFlow.EndDate       = DateTime.MaxValue;
                workFlow.StageId       = (int)SendingStages.EncryptedEDI;
                workFlow.StartDate     = DateTime.Now;
                workFlow.StatusId      = (int)Statuses.InProgress;
                workFlow.TransactionId = Guid.Parse(job.TransactionId);
                _serviceJobWorkFlow.Add(workFlow);
                _serviceJobWorkFlow.Save();
                workFlowId = workFlow.WorkflowId;
                StartEncryptingEDI(job, workFlowId);
                #endregion
                #region Sending
                UpdateJobStatus(job.TransactionId, (int)Statuses.InProgress, (int)SendingStages.SendingFile);
                Int64 workflowId = Int64.MinValue;
                workFlow               = new JobWorkflow();
                workFlow.EndDate       = DateTime.MaxValue;
                workFlow.StageId       = (int)SendingStages.SendingFile;
                workFlow.StartDate     = DateTime.Now;
                workFlow.StatusId      = (int)Statuses.InProgress;
                workFlow.TransactionId = Guid.Parse(job.TransactionId);
                _serviceJobWorkFlow.Add(workFlow);
                _serviceJobWorkFlow.Save();
                workflowId = workFlow.WorkflowId;
                Console.WriteLine("Sending files updated status of job in DB.");
                FileSendingManager(job, workflowId);
                #endregion
            }
            catch (Exception ex)
            {
                AppLogManager(new StringBuilder("Raise UPRD in Task manager send"), "Error", new StringBuilder(ex.Message + " Inner Exception:- " + ex.InnerException));
            }
        }