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(); }
private FlatFile ProcessHeader(string filename, GesmesHelpers gesmesHelpers) { var lines = File.ReadAllLines(filename); var senderID = gesmesHelpers.GetDataItem("UNOC:3"); _fileInfo.SenderId = (senderID.Contains(":") ? senderID.Split(':')[0] : senderID); var isValidSenederId = !string.IsNullOrEmpty(_fileInfo.SenderId) ? string.Empty : "The Gemses file header record is missing or invalid. The file has not been processed. " + " Please correct and resubmit."; if (!string.IsNullOrEmpty(isValidSenederId)) { headerErrors.AppendLine().AppendFormat(isValidSenederId); NotifyErrorMsgToUsers(_fileInfo, headerErrors.ToString()); return(null); } _fileInfo.FileName = filename; _fileInfo.TotalRecords = gesmesHelpers.GetNumberOfRecords(); _fileInfo.TableRef = gesmesHelpers.GetDataItem("DSI"); var validateMsdRecord = string.Empty; if (_fileInfo.TableRef.ToUpper().Equals("TABLE-1-UO-Q") || _fileInfo.TableRef.ToUpper().Equals("TABLE-1-UQ-Q") || _fileInfo.TableRef.ToUpper().Equals("TABLE-2-FT-A") || _fileInfo.TableRef.ToUpper().Equals("TABLE-3-LA-A") || _fileInfo.TableRef.ToUpper().Equals("TABLE-4-VS-Q") || _fileInfo.TableRef.ToUpper().Equals("TABLE-5-FT-A")) { if (!(_fileInfo.TableRef.ToUpper().Equals("TABLE-1-UO-Q") || _fileInfo.TableRef.ToUpper().Equals("TABLE-1-UQ-Q") || _fileInfo.TableRef.ToUpper().Equals("TABLE-2-FT-A") || _fileInfo.TableRef.ToUpper().Equals("TABLE-3-LA-A"))) { validateMsdRecord = "The Gesmes file header record is not in the correct format for an MSD1 submission. The file has not been processed. Please correct and resubmit."; ArchiveProcessedFilesFromBucket(filename, true); var tokens = new Dictionary <string, dynamic>(); tokens.Add("filename", filename); _emailSender.SendEmail(_settings.MaritimeHelpdeskEmailAddress, "Error in file submitted", validateMsdRecord, tokens); return(null); } } else { validateMsdRecord = "The Gesmes file header record is not in the correct format for a submission. The file has not been processed. Please correct and resubmit."; headerErrors.AppendLine().AppendFormat(validateMsdRecord); } _fileInfo.IsAmendment = gesmesHelpers.GetAmmendment("STS"); _fileInfo.CreationDate = DateTime.Now.Date; _fileInfo.IsTest = null; var regNo = gesmesHelpers.GetDataItem("UNB"); _fileInfo.RegistrationNumber = regNo.Contains(":") ? int.Parse(regNo.Split(':')[1]) : int.Parse(regNo); _fileInfo.SendersRef = gesmesHelpers.GetDataItem("UNH"); if (_fileInfo != null && string.IsNullOrEmpty(validateMsdRecord)) { previousFileRefId = _fileProcessService.GetLastInvalidFileRefId(_fileInfo); isDuplicatedFile = _fileProcessService.CheckFileExist(_fileInfo); _fileProcessService.Add(_fileInfo); } if (string.IsNullOrEmpty(headerErrors.ToString().Trim())) { return(_fileInfo); } AddErrorLogToDbAndNotifyUser(filename, headerErrors.ToString()); return(null); }