private void ValidateMsd1CargoSummary(Msd1CargoSummary msd1CargoSummary) { var(isValidMsd1, msd1HardValidationErrMsg) = _validateMsdData.ValidateMSd1CargoSummary(_msd1, msd1CargoSummary); if (!isValidMsd1 || !string.IsNullOrEmpty(msd1HardValidationErrMsg.Trim())) { recordErrors.Append(msd1HardValidationErrMsg); } }
private void MapMsd1ToMsd1Data() { Msd1Data = _context.Msd1Data.FirstOrDefault(x => x.Msd1Id == MSD1.Msd1Id) ?? new Msd1Data(); Msd1Data.Msd1Id = MSD1.Msd1Id ?? _helperService.GetUniqueKey(); Msd1Data.Imo = MSD1.Imo; Msd1Data.ShipName = MSD1.ShipName; Msd1Data.FlagCode = MSD1.FlagCode; Msd1Data.Year = MSD1.Year; Msd1Data.Quarter = MSD1.Quarter; Msd1Data.AssociatedPort = _helperService.GetPortCodeByPort(MSD1.AssociatedPort) ?? MSD1.AssociatedPort; Msd1Data.ReportingPort = _helperService.GetPortCodeByPort(MSD1.ReportingPort) ?? MSD1.ReportingPort; Msd1Data.NumVoyages = MSD1.NumVoyages; Msd1Data.IsInbound = MSD1.IsInbound == null ? false : MSD1.IsInbound.Value; Msd1Data.VoyageDate = MSD1.VoyageDate; Msd1Data.UserName = Msd1Data.UserName ?? _userManager.GetUserName(HttpContext.User); Msd1Data.DataSourceId = (int)DataSource.WEB; Msd1Data.CreatedDate = Msd1Data.CreatedDate != default(DateTime) && Msd1Data.CreatedDate < DateTime.Now ? Msd1Data.CreatedDate : DateTime.SpecifyKind(currentDateTime, DateTimeKind.Utc); Msd1Data.LastUpdatedBy = _userManager.GetUserName(HttpContext.User); Msd1Data.ModifiedDate = DateTime.SpecifyKind(currentDateTime, DateTimeKind.Utc); Msd1Data.AgentSenderId = MSD1.AgentSenderID; Msd1Data.LineSenderId = MSD1.LineSenderID; Msd1Data.RecordRef = MSD1.RecordRef; Msd1Data.Msd1CargoSummary = _context.Msd1CargoSummary.Where(x => x.Msd1Id == Msd1Data.Msd1Id) .ToList(); if (Msd1Data.Msd1CargoSummary.Count > 0) { Msd1Data.Msd1CargoSummary.Clear(); } foreach (CargoItem item in MSD1.CargoSummary) { Msd1CargoSummary msd1CargoSummary = new Msd1CargoSummary { Msd1Id = Msd1Data.Msd1Id, CategoryCode = _helperService.GetCategoryCodeByDescription(item.Category), UnitsWithCargo = item.UnitsWithCargo, UnitsWithoutCargo = item.UnitsWithoutCargo, TotalUnits = item.TotalUnits, GrossWeight = (decimal?)item.GrossWeight, Description = item.Description }; Msd1Data.Msd1CargoSummary.Add(msd1CargoSummary); } ; }
public (bool, string) ValidateMSd1CargoSummary(Msd1Data msd1Data, Msd1CargoSummary cargoItem) { sb = new StringBuilder(); var modelState = _cargoPortValidateService.ManualModelCargoValidation(msd1Data, cargoItem); if (modelState.IsValid) { return(true, string.Empty); } foreach (var error in modelState.Values.SelectMany(item => item.Errors)) { sb.AppendLine().AppendLine(error.ErrorMessage); } return(false, sb.ToString()); }
public IActionResult OnGet() { try { CargoSummary = _context.Msd1CargoSummary.Where(x => x.Id == int.Parse(TempData.Peek("SumId").ToString())) .First(); Msd = _context.Msd1Data.Where(x => x.Msd1Id == TempData.Peek("Msd1Id").ToString()).First(); } catch (Exception e) { _logger.LogError(e, e.Message); return(RedirectToPage("/Index", new { area = "Admin" })); } return(Page()); }
public async Task <IActionResult> OnPostAsync() { try { CargoSummary = _context.Msd1CargoSummary.Where(x => x.Id == int.Parse(TempData.Peek("SumId").ToString())) .First(); CargoSummary.CategoryCode = CategoryCode; CargoSummary.UnitsWithCargo = UnitsWithCargo; CargoSummary.UnitsWithoutCargo = UnitsWithoutCargo; CargoSummary.TotalUnits = TotalUnits; CargoSummary.GrossWeight = GrossWeight; CargoSummary.Description = Description; await UpdateLastUpdatedAsync(); var totalWeightAllowed = _helperService.GetDeadweightByIMO(Msd.Imo) * Msd.NumVoyages; if (CargoSummary.GrossWeight > totalWeightAllowed) { ModelState.AddModelError("GrossWeight", "The Gross Weight is larger than this ship can carry"); return(Page()); } if (!DoesCategoryCodeExist(CargoSummary.CategoryCode)) { ModelState.AddModelError("CategoryCode", $"The Category Code {CargoSummary.CategoryCode} is not valid"); return(Page()); } _context.SaveChanges(); TempData.Put("EditSuccess", "Cargo summary has been successfully amended"); TempData["Msd1Id"] = CargoSummary.Msd1Id; } catch (Exception e) { _logger.LogError(e, e.Message); return(RedirectToPage("/Summaries/ViewSummary", new { area = "Admin" })); } return(RedirectToPage("/Summaries/ViewSummary", new { area = "Admin" })); }
public MSD1FileProcess(Msd1Data msd1, Msd1CargoSummary msd1CargoSummary, FlatFile fileInfo, ValidateMsdData validateMsdData, IHelperService helperService, IFileProcessService fileProcessService, IMsd1DataService msd1DataService, ILogger <MSD1FileProcess> logger ) { _msd1 = msd1; _msd1CargoSummary = msd1CargoSummary; _fileInfo = fileInfo; _helperService = helperService; _fileProcessService = fileProcessService; _msd1DataService = msd1DataService; _logger = logger; _validateMsdData = validateMsdData; recordErrors = new StringBuilder(); bodyErrorMsg = new StringBuilder(); }
public ModelStateDictionary ManualModelCargoValidation(Msd1Data localMSD1, Msd1CargoSummary cargoItem) { totalGrossWeight = 0; _modelState = new ModelStateDictionary(); var currentCargoGroup = _portFreightContext.CargoGroup. Join(_portFreightContext.CargoCategory, cg => cg.GroupCode, cc => cc.GroupCode, (cg, cc) => new { cg, cc }) .Where(x => x.cc.CategoryCode.Equals(cargoItem.CategoryCode)) .Select(x => x.cg).FirstOrDefault(); if (currentCargoGroup == null) { _modelState.AddModelError("CargoItem.CategoryCode", "Invalid value for category code. Please correct or contact the helpdesk for advice."); return(_modelState); } var cargoCategory = _portFreightContext.CargoCategory.Where(x => x.GroupCode == currentCargoGroup.GroupCode); var currentCargoCategory = cargoCategory.FirstOrDefault(x => x.CategoryCode == cargoItem.CategoryCode); TextInputDisplayDriver = BuildTextInputDisplayDriver(currentCargoCategory, currentCargoGroup.IsUnitised); var grossWeightVisible = TextInputDisplayDriver.Contains(WeightConfigure); var numUnitsVisible = TextInputDisplayDriver.Contains(NoCargoConfigure); var numUnitsWithCargoVisible = TextInputDisplayDriver.Contains(CargoConfigure) && !numUnitsVisible; var numUnitsWithoutCargoVisible = numUnitsWithCargoVisible; if (numUnitsVisible && (!cargoItem.TotalUnits.HasValue || cargoItem.TotalUnits == 0)) { _modelState.AddModelError("CargoItem.TotalUnits", "Missing value for total units. Please correct or contact the helpdesk for advice."); } if (numUnitsWithCargoVisible && (!cargoItem.UnitsWithCargo.HasValue)) { _modelState.AddModelError("CargoItem.UnitsWithCargo", "Invalid value for units with cargo. Please correct or contact the helpdesk for advice."); } if (numUnitsWithoutCargoVisible && (!cargoItem.UnitsWithoutCargo.HasValue)) { _modelState.AddModelError("CargoItem.UnitsWithoutCargo", "Invalid value for units without cargo. Please correct or contact the helpdesk for advice."); } if (grossWeightVisible) { if (!cargoItem.GrossWeight.HasValue) { _modelState.AddModelError("CargoItem.GrossWeight", "Invalid value for gross weight. Please correct or contact the helpdesk for advice."); } else if (!numUnitsWithCargoVisible && !numUnitsWithoutCargoVisible && cargoItem.GrossWeight == 0) { _modelState.AddModelError("CargoItem.GrossWeight", "Gross weight cannot be 0. Please correct or contact the helpdesk for advice."); } } if (numUnitsWithCargoVisible && numUnitsWithoutCargoVisible && cargoItem.UnitsWithCargo == 0 && cargoItem.UnitsWithoutCargo == 0) { _modelState.AddModelError("CargoItem.UnitsWithCargo", "Number of units with and without cargo cannot both be 0. Please correct or contact the helpdesk for advice."); } if (numUnitsWithCargoVisible && cargoItem.UnitsWithCargo > 0 && cargoItem.GrossWeight == 0) { _modelState.AddModelError("CargoItem.GrossWeight", "You reported " + cargoItem.UnitsWithCargo + " units with cargo but no weight. Enter the weight of this cargo or contact the helpdesk for advice."); } if (numUnitsWithCargoVisible && cargoItem.UnitsWithCargo == 0 && cargoItem.GrossWeight > 0) { _modelState.AddModelError("CargoItem.UnitsWithCargo", "You reported cargo weighing " + cargoItem.GrossWeight + " tonnes. Enter the number of units that were carrying this cargo or contact the helpdesk for advice."); } return(_modelState); }
private void AddCargoSummaryToMsd1Data(string record) { _msd1CargoSummary = new Msd1CargoSummary { Msd1Id = _msd1.Msd1Id }; var validateCategoryCode = string.IsNullOrEmpty(record.Substring(67, 2).Trim()) || record.Substring(67, 2).Length < 2 ? record.Substring(67, 2) + " is not a valid cargo code. Please correct or contact the helpdesk for advice." : string.Empty; if (!string.IsNullOrEmpty(validateCategoryCode)) { recordErrors.AppendLine().AppendFormat(validateCategoryCode); } byte categoryCode = 0; var strCategoryCode = record.Substring(67, 2).Length < 2 ? string.Empty : record.Substring(67, 2); byte.TryParse(strCategoryCode, out categoryCode); _msd1CargoSummary.CategoryCode = categoryCode; var validateGrossWeight = string.IsNullOrEmpty(record.Substring(69, 9).Trim()) ? record.Substring(69, 9) + " is not a valid value for gross weight. Please correct or contact the helpdesk for advice." : string.Empty; if (!string.IsNullOrEmpty(validateGrossWeight)) { recordErrors.AppendLine().AppendFormat(validateGrossWeight); } UInt32 grossWeight = 0; var strGrossWeight = record.Substring(69, 9).Length < 9 ? string.Empty : record.Substring(69, 9); UInt32.TryParse(strGrossWeight, out grossWeight); _msd1CargoSummary.GrossWeight = grossWeight; UInt32 unitsWithCargo = 0; var strUnitsWithCargo = record.Substring(78, 8).Length < 8 ? string.Empty : record.Substring(78, 8); UInt32.TryParse(strUnitsWithCargo, out unitsWithCargo); _msd1CargoSummary.UnitsWithCargo = unitsWithCargo; UInt32 unitsWithoutCargo = 0; var strUnitsWithoutCargo = record.Substring(86, 8).Length < 8 ? string.Empty : record.Substring(86, 8); UInt32.TryParse(strUnitsWithoutCargo, out unitsWithoutCargo); _msd1CargoSummary.UnitsWithoutCargo = unitsWithoutCargo; UInt32 totalUnits = 0; var strTotalUnits = record.Substring(94, 8).Length < 8 ? string.Empty : record.Substring(94, 8); UInt32.TryParse(strTotalUnits, out totalUnits); _msd1CargoSummary.TotalUnits = totalUnits; if (record.Length >= 137) { _msd1CargoSummary.Description = string.IsNullOrEmpty(record.Substring(137)) ? string.Empty : record.Substring(137); } ValidateMsd1CargoSummary(_msd1CargoSummary); if (string.IsNullOrEmpty(recordErrors.ToString().Trim())) { _msd1.Msd1CargoSummary.Add(_msd1CargoSummary); } }
private void AddCargoSummaryToMsd1Data(string[] ARR) { var msd1CargoCategory = new Msd1CargoSummary(); msd1CargoCategory.Msd1Id = _msd1.Msd1Id; Byte categoryCode = 0; var strCategoryCode = string.IsNullOrEmpty(ARR[13].Trim()) ? string.Empty : ARR[13]; Byte.TryParse(strCategoryCode, out categoryCode); msd1CargoCategory.CategoryCode = categoryCode; var validateCategoryCode = string.IsNullOrEmpty(ARR[13].Trim()) ? ARR[13].Trim() + " is not a valid cargo code." + " Please correct or contact the help-desk for advice." : String.Empty; if (!string.IsNullOrEmpty(validateCategoryCode)) { recordErrors.AppendLine().AppendFormat(validateCategoryCode); } UInt32 grossWeight = 0; var strGrossWeight = string.IsNullOrEmpty(ARR[14].Trim()) ? string.Empty : ARR[14]; UInt32.TryParse(strGrossWeight, out grossWeight); msd1CargoCategory.GrossWeight = grossWeight; var validateGrossWeight = string.IsNullOrEmpty(ARR[14].Trim()) ? ARR[14].Trim() + " is not a valid value for gross weight. Please correct or contact the help-desk for advice." : String.Empty; if (!string.IsNullOrEmpty(validateGrossWeight)) { recordErrors.AppendLine().AppendFormat(validateGrossWeight); } UInt32 unitsWithCargo = 0; var strUnitsWithCargo = string.IsNullOrEmpty(ARR[15].Trim()) ? string.Empty : ARR[15]; UInt32.TryParse(strUnitsWithCargo, out unitsWithCargo); msd1CargoCategory.UnitsWithCargo = unitsWithCargo; var validateUnitsWithCargo = string.IsNullOrEmpty(ARR[15].Trim()) ? ARR[15].Trim() + " is not a valid value for units with cargo. Please correct or contact the help-desk for advice." : String.Empty; if (!string.IsNullOrEmpty(validateUnitsWithCargo)) { recordErrors.AppendLine().AppendFormat(validateUnitsWithCargo); } UInt32 unitsWithoutCargo = 0; var strUnitsWithoutCargo = string.IsNullOrEmpty(ARR[16].Trim()) ? string.Empty : ARR[16]; UInt32.TryParse(strUnitsWithoutCargo, out unitsWithoutCargo); msd1CargoCategory.UnitsWithoutCargo = unitsWithoutCargo; var validateUnitsWithoutCargo = string.IsNullOrEmpty(ARR[16].Trim()) ? ARR[16].Trim() + " is not a valid value for units without cargo. Please correct or contact the help-desk for advice." : String.Empty; if (!string.IsNullOrEmpty(validateUnitsWithoutCargo)) { recordErrors.AppendLine().AppendFormat(validateUnitsWithoutCargo); } UInt32 totalUnits = 0; var strTotalUnits = string.IsNullOrEmpty(ARR[17].Trim()) ? string.Empty : ARR[17]; UInt32.TryParse(strTotalUnits, out totalUnits); msd1CargoCategory.TotalUnits = totalUnits; var validateTotalUnits = string.IsNullOrEmpty(ARR[17].Trim()) ? ARR[17].Trim() + " is not a valid value for total units. Please correct or contact the help-desk for advice." : String.Empty; if (!string.IsNullOrEmpty(validateTotalUnits)) { recordErrors.AppendLine().AppendFormat(validateTotalUnits); } ValidateMsd1CargoSummary(msd1CargoCategory); if (string.IsNullOrEmpty(recordErrors.ToString().Trim())) { _msd1.Msd1CargoSummary.Add(msd1CargoCategory); } }