コード例 #1
0
 public ASCIIFileProcess(
     FlatFile fileInfo,
     MSD1FileProcess msd1FileProcess,
     MSD2FileProcess msd2FileProcess,
     MSD3FileProcess msd3FileProcess,
     LogFileData logFileData,
     ValidateMsdData validateMsdData,
     IEmailSender emailSender,
     IFileProcessService fileProcessService,
     IMsd1DataService msd1DataService,
     IMsd2DataService msd2DataService,
     IMsd3DataService msd3DataService,
     ILogger <ASCIIFileProcess> logger,
     IOptions <FileOptions> settings
     )
 {
     _fileInfo           = fileInfo;
     _logFileData        = logFileData;
     _msd1FileProcess    = msd1FileProcess;
     _msd2FileProcess    = msd2FileProcess;
     _msd3FileProcess    = msd3FileProcess;
     _validateMsdData    = validateMsdData;
     _fileProcessService = fileProcessService;
     _msd1DataService    = msd1DataService;
     _msd2DataService    = msd2DataService;
     _msd3DataService    = msd3DataService;
     _emailSender        = emailSender;
     _logger             = logger;
     _settings           = settings.Value;
     headerErrors        = new StringBuilder();
     bodyErrorMsg        = new StringBuilder();
 }
コード例 #2
0
 public GESMESFileProcess(
     FlatFile fileInfo,
     LogFileData logFileData,
     GesmesHelpers gesmesHelpers,
     ValidateMsdData validateMsdData,
     Msd1FileProcess msd1FileProcess,
     Msd2FileProcess msd2FileProcess,
     Msd3FileProcess msd3FileProcess,
     IMsd1DataService msd1DataService,
     IMsd2DataService msd2DataService,
     IMsd3DataService msd3DataService,
     IFileProcessService fileProcessService,
     IHelperService helperService,
     IOptions <FileOptions> settings,
     IEmailSender emailSender,
     ILogger <GESMESFileProcess> logger)
 {
     _fileInfo           = fileInfo;
     _logFileData        = logFileData;
     _gesmesHelpers      = gesmesHelpers;
     _helperService      = helperService;
     _msd1DataService    = msd1DataService;
     _msd2DataService    = msd2DataService;
     _msd3DataService    = msd3DataService;
     _validateMsdData    = validateMsdData;
     _fileProcessService = fileProcessService;
     _logger             = logger;
     _settings           = settings.Value;
     _emailSender        = emailSender;
     _msd1FileProcess    = msd1FileProcess;
     _msd2FileProcess    = msd2FileProcess;
     _msd3FileProcess    = msd3FileProcess;
     headerErrors        = new StringBuilder();
     bodyErrorMsg        = new StringBuilder();
 }
コード例 #3
0
        private void Open_Executed()
        {
            //Command execute logic

            var filename = _fileService.GetFilename();

            if (String.IsNullOrWhiteSpace(filename))
            {
                return;
            }


            CurrentLog = new LogFileData(filename);
            _logService.CurrentLogFile = CurrentLog;
        }
コード例 #4
0
        public void InitiateAsciiFileProcess(string filename)
        {
            try
            {
                _fileInfo    = new FlatFile();
                _logFileData = new LogFileData();
                var senderId = ProcessFileHeader(filename);

                if (!string.IsNullOrEmpty(senderId) && string.IsNullOrEmpty(headerErrors.ToString().Trim()))
                {
                    if (_fileInfo != null &&
                        _fileInfo.IsAmendment.HasValue &&
                        _fileInfo.IsAmendment.Value == 1 &&
                        previousFileRefId > -1)
                    {
                        switch (_fileInfo.TableRef.ToUpper())
                        {
                        case "TABLE-1-UO-Q":
                        case "TABLE-1-UQ-Q":
                            _msd1DataService.DeleteAllPreviousMsd1Data(previousFileRefId);
                            break;

                        case "TABLE-2-FT-A":
                            _msd2DataService.DeleteAllPreviousMsd2Data(previousFileRefId);
                            break;

                        case "TABLE-3-LA-A":
                            _msd3DataService.DeleteAllPreviousMsd3Data(previousFileRefId);
                            break;
                        }
                    }

                    if ((!isDuplicatedFile && _fileInfo.IsAmendment.Value == 0) ||
                        (_fileInfo.IsAmendment.Value == 1 && previousFileRefId > -1))
                    {
                        switch (_fileInfo.TableRef.ToUpper())
                        {
                        case "TABLE-1-UO-Q":
                        case "TABLE-1-UQ-Q":
                            var errorMassage = _msd1FileProcess.ProcessMsd1Records(filename, _fileInfo);
                            bodyErrorMsg.Append(errorMassage);
                            break;

                        case "TABLE-2-FT-A":
                            errorMassage = _msd2FileProcess.ProcessMsd2Records(filename, _fileInfo);
                            bodyErrorMsg.Append(errorMassage);
                            break;

                        case "TABLE-3-LA-A":
                            errorMassage = _msd3FileProcess.ProcessMsd3Records(filename, _fileInfo);
                            bodyErrorMsg.Append(errorMassage);
                            break;
                        }
                    }
                    else
                    {
                        var errmsg = (_fileInfo.IsAmendment.Value == 1 && previousFileRefId == -1) ?
                                     string.Format("{0} is an amendment file but there is no file with the same submission reference to amend - please contact the helpdesk for advice.", _fileInfo.FileName.Substring(0, _fileInfo.FileName.IndexOf('.') + 4)) :
                                     string.Format("{0} has the same sender reference as a file you have already sent, so it has not been processed." +
                                                   " If it is not a duplicate sent by mistake, please use a different sender reference in the header and resubmit the file.", _fileInfo.FileName.Substring(0, _fileInfo.FileName.IndexOf('.') + 4));
                        bodyErrorMsg.AppendFormat(errmsg);
                    }
                    if (!string.IsNullOrEmpty(bodyErrorMsg.ToString().Trim()))
                    {
                        AddErrorLogToDbAndNotifyUser(filename, bodyErrorMsg.ToString());
                    }
                    bodyErrorMsg.Clear();
                }
                headerErrors.Clear();
            }
            catch (Exception err)
            {
                _logger.LogError("Ascii File error:", err.Message, err.InnerException != null ? err.InnerException.Message : string.Empty, err.StackTrace);

                if (_fileInfo != null)
                {
                    bodyErrorMsg.AppendLine(filename + Environment.NewLine + err.Message);
                    AddErrorLogToDbAndNotifyUser(filename, bodyErrorMsg.ToString());
                }
            }
            finally
            {
                ArchiveProcessedFilesFromBucket(filename, false);
                bodyErrorMsg.Clear();
                headerErrors.Clear();
                _fileInfo = null;
            }
        }
コード例 #5
0
 public void AddLogFileData(LogFileData logFileData)
 {
     _context.LogfileData.Add(logFileData);
     _context.SaveChanges();
     _context.Entry(logFileData).State = EntityState.Detached;
 }
コード例 #6
0
 public void UpdateLogFileData(LogFileData logFileData)
 {
     _context.LogfileData.Update(logFileData);
     _context.SaveChanges();
     _context.Entry(logFileData).State = EntityState.Modified;
 }
コード例 #7
0
 void logService_LogFileChanged(object sender, EventArgs e)
 {
     this.CurrentLog = _logService.CurrentLogFile;
 }
コード例 #8
0
 public StatusBarViewModel(ILogFileService logService)
 {
     _logService = logService;
     logService.LogFileChanged += logService_LogFileChanged;
     CurrentLog = logService.CurrentLogFile;
 }