Exemple #1
0
        private void UpdateJobStatus(string TransactionID, int status, int stageId)
        {
            try
            {
                TaskMgrJob pendingJob = _serviceTaskMgrJob.GetByTransactionId(TransactionID);
                if (pendingJob != null)
                {
                    pendingJob.StartDate = status == (int)Statuses.InProgress ? DateTime.UtcNow : pendingJob.StartDate;
                    pendingJob.EndDate   = status != (int)Statuses.InProgress ? DateTime.UtcNow : pendingJob.EndDate;
                    pendingJob.StatusId  = status;
                    pendingJob.StageId   = stageId;
                    _serviceTaskMgrJob.Update(pendingJob);
                    _serviceTaskMgrJob.Save();

                    var outbox = _serviceOutbox.GetByTransactionId(Guid.Parse(pendingJob.TransactionId));//GetAll().Where(a => a.MessageID == Guid.Parse(pendingJob.TransactionId)).FirstOrDefault();//BLLOutbox.GetItem(Guid.Parse(pendingJob.TransactionId));
                    if (outbox != null)
                    {
                        if ((pendingJob.StageId == (int)SendingStages.SendingFile) && (pendingJob.StatusId == (int)Statuses.Completed))
                        {
                            outbox.StatusID = 5;
                        }
                        if (pendingJob.StatusId == (int)Statuses.Error)
                        {
                            outbox.StatusID = 8;
                        }
                        _serviceOutbox.Update(outbox);
                        _serviceOutbox.Save();
                    }
                }
            }
            catch (Exception ex)
            {
                AppLogManager(new StringBuilder("UpdateJobStatus Task Manager Task Manager Send"), "Error", new StringBuilder(ex.Message));
            }
        }
Exemple #2
0
        /// <summary>
        /// Encryptor for all docs
        /// </summary>
        /// <param name="job">task identity</param>
        /// <param name="workFlowId">task workflow logging</param>
        private void StartEncryptingEDI(TaskMgrJob job, Int64 workFlowId)
        {
            try
            {
                TaskMgrXml EDIFile = _serviceTaskMgrXml.GetbyTransactionId(job.TransactionId);
                if (EDIFile != null)
                {
                    string encEDIFile = null;
                    metadataPipelineEncKeyInfo keyInfo = _servicemetadataPipelineEncKeyInfo.GetByPipelineId(EDIFile.PipelineId);
                    string PgpKey = keyInfo.PgpKey;

                    var iiTestOn = _serviceSetting.GetById((int)Settings.iiTestOn).Value;
                    if (Convert.ToBoolean(iiTestOn))
                    {
                        iiPublicKey = _serviceSetting.GetById((int)Settings.iiPublicKey).Value;
                        encEDIFile  = EncryptFile(iiPublicKey, EDIFile.EDIData);
                    }
                    else
                    {
                        encEDIFile = EncryptFile(PgpKey, EDIFile.EDIData);
                    }

                    AppLogManager(new StringBuilder(job.TransactionId), "Info", new StringBuilder("Encrypted by " + keyInfo.KeyName));
                    SaveXmlToDB(job.TransactionId, EDIFile.PipelineId, null, null, encEDIFile, null);
                    UpdateJobStatus(job.TransactionId, (int)Statuses.Completed, (int)SendingStages.EncryptedEDI);
                    UpdateTransactionLogs(job.TransactionId, (int)Statuses.Completed);
                    UpdateWorkflow(workFlowId, (int)Statuses.Completed);
                }
                else
                {
                    UpdateJobStatus(job.TransactionId, (int)Statuses.Error, (int)SendingStages.EncryptedEDI);
                    UpdateTransactionLogs(job.TransactionId, (int)Statuses.Error);
                    UpdateWorkflow(workFlowId, (int)Statuses.Error);
                }
            }
            catch (Exception ex)
            {
                SaveErrorLogs("StartEncryptingEDI Task Manager Send " + ex.Message, Guid.Parse(job.TransactionId), workFlowId, (int)SendingStages.EncryptedEDI);
                UpdateJobStatus(job.TransactionId, (int)Statuses.Error, (int)SendingStages.EncryptedEDI);
                UpdateTransactionLogs(job.TransactionId, (int)Statuses.Error);
                UpdateWorkflow(workFlowId, (int)Statuses.Error);
                AppLogManager(new StringBuilder("StartEncryptingEDI Task Manager send"), "Error", new StringBuilder(ex.Message));
            }
        }
Exemple #3
0
 private void FileSendingManager(TaskMgrJob job, Int64 workflowId)
 {
     try
     {
         //***Request:- Pipeline, IsPipe_UseTspDuns, FileInBytes, PostParams, ReqToTspRetResponse.
         HttpWebResponse response = CollectingDataForSendingFile(job.TransactionId);
         //***Response:- ProcessResponse, UpdateTransaction, JobWorkFlow, storeGISB, Send mail.
         bool GISBReceived = ProcessResponseFromTsp(response, job.TransactionId);
         if (GISBReceived)
         {
             SendMailOfSendingFile(job.TransactionId, GISBReceived);
             UpdateJobStatus(job.TransactionId, (int)Statuses.Completed, (int)SendingStages.SendingFile);
             UpdateTransactionLogs(job.TransactionId, (int)Statuses.Completed);
             UpdateWorkflow(workflowId, (int)Statuses.Completed);
         }
         else
         {
             var outbox = _serviceOutbox.GetByTransactionId(Guid.Parse(job.TransactionId));
             outbox.GISB     = "Gisb not received";
             outbox.StatusID = (int)Statuses.Error;
             _serviceOutbox.Update(outbox);
             SendMailOfSendingFile(job.TransactionId, GISBReceived);
             UpdateJobStatus(job.TransactionId, (int)Statuses.Error, (int)SendingStages.SendingFile);
             UpdateTransactionLogs(job.TransactionId, (int)Statuses.Error);
             UpdateWorkflow(workflowId, (int)Statuses.Error);
         }
     }
     catch (Exception ex)
     {
         Console.Clear();
         Console.WriteLine("SendNominationFile " + job.TransactionId + " " + ex.Message, Guid.Parse(job.TransactionId), workflowId, (int)SendingStages.SendingFile);
         SaveErrorLogs("SendNominationFile " + job.TransactionId + " " + ex.Message, Guid.Parse(job.TransactionId), workflowId, (int)SendingStages.SendingFile);
         UpdateJobStatus(job.TransactionId, (int)Statuses.Error, (int)SendingStages.SendingFile);
         UpdateTransactionLogs(job.TransactionId, (int)Statuses.Error);
         UpdateWorkflow(workflowId, (int)Statuses.Error);
         AppLogManager(new StringBuilder("File sending manager." + job.TransactionId), "Error", new StringBuilder(ex.Message));
     }
 }
Exemple #4
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));
            }
        }