public IActionResult SicSectionUploadCheckPost(AdminSicSectionUploadCheckViewModel viewModel) { var newRecords = JsonConvert.DeserializeObject <List <SicSection> >(viewModel.SerializedNewRecords); List <SicSection> sicSectionsFromDatabase = dataRepository.GetAll <SicSection>().ToList(); viewModel.AddsEditsDeletesSet = new AddsEditsDeletesSet <SicSection>( sicSectionsFromDatabase, newRecords, s => s.SicSectionId, (s1, s2) => s1.Description == s2.Description ); viewModel.ParseAndValidateParameters(Request, m => m.Reason); if (viewModel.HasAnyErrors()) { return(View("SicSectionUploadCheck", viewModel)); } List <SicSection> existingRecords = dataRepository.GetAll <SicSection>().ToList(); auditLogger.AuditGeneralAction(AuditedAction.AdminUpdatedSicSections, new { ExistingRecords = JsonConvert.SerializeObject(existingRecords.Select(GetSicSectionDetails)), NewRecords = JsonConvert.SerializeObject(newRecords.Select(GetSicSectionDetails)), Reason = viewModel.Reason }, User); SaveChangesToSicSections(viewModel); return(View("UploadConfirmation", FileUploadType.SicSection)); }
private void SaveChangesToSicSections(AdminSicSectionUploadCheckViewModel viewModel) { foreach (SicSection sicSectionFromUser in viewModel.AddsEditsDeletesSet.ItemsToAdd) { var sicSection = new SicSection { SicSectionId = sicSectionFromUser.SicSectionId, Description = sicSectionFromUser.Description }; dataRepository.Insert(sicSection); } foreach (OldAndNew <SicSection> oldAndNew in viewModel.AddsEditsDeletesSet.ItemsToChange) { SicSection sicSection = dataRepository.Get <SicSection>(oldAndNew.Old.SicSectionId); sicSection.Description = oldAndNew.New.Description; } foreach (SicSection sicSectionFromUser in viewModel.AddsEditsDeletesSet.ItemsToDelete) { SicSection sicSection = dataRepository.Get <SicSection>(sicSectionFromUser.SicSectionId); dataRepository.Delete(sicSection); } dataRepository.SaveChanges(); }
public IActionResult SicSectionUploadPost(AdminFileUploadViewModel viewModel) { if (!ReferenceDataHelper.TryParseCsvFileWithHeadings( viewModel.File, new[] { "SicSectionId", "Description" }, out List <SicSection> sicSectionsFromUploadFile, out string errorMessage)) { viewModel.AddErrorFor(m => m.File, errorMessage); return(View("SicSectionUpload", viewModel)); } List <SicSection> sicSectionsFromDatabase = dataRepository.GetAll <SicSection>().ToList(); var uploadCheckViewModel = new AdminSicSectionUploadCheckViewModel { SerializedNewRecords = JsonConvert.SerializeObject(sicSectionsFromUploadFile), AddsEditsDeletesSet = new AddsEditsDeletesSet <SicSection>( sicSectionsFromDatabase, sicSectionsFromUploadFile, s => s.SicSectionId, (s1, s2) => s1.Description == s2.Description, s => s.SicCodes.Count > 0) }; return(View("SicSectionUploadCheck", uploadCheckViewModel)); }