/// <summary> /// Form the view model from the excel worksheet /// </summary> /// <param name="worksheet"></param> /// <param name="systemname"></param> /// <returns></returns> private List <POAMViewModel> GetViewModel(ExcelWorksheet worksheet, string systemname) { if (worksheet == null) { throw new ArgumentNullException(); } var poams = new List <POAMViewModel>(); for (int i = 2; i < worksheet.Dimension.Rows; i++) { try { var viewmodel = new POAMViewModel { Recommendation = worksheet.Cells[i, 8].Value == null ? string.Empty : worksheet.Cells[i, 8].Value.ToString() }; if (string.IsNullOrEmpty(viewmodel.Recommendation)) { break; } viewmodel.ID = Guid.NewGuid(); viewmodel.AuthSystem = systemname; viewmodel.Number = worksheet.Cells[i, 1].Value == null ? default(int) : Convert.ToInt32(worksheet.Cells[i, 1].Value.ToString()); viewmodel.CSAMPOAMID = worksheet.Cells[i, 2].Value == null ? string.Empty : worksheet.Cells[i, 2].Value.ToString(); viewmodel.ControlID = worksheet.Cells[i, 3].Value == null ? string.Empty : worksheet.Cells[i, 3].Value.ToString(); viewmodel.RiskLevel = worksheet.Cells[i, 4].Value == null ? string.Empty : worksheet.Cells[i, 4].Value.ToString(); viewmodel.Status = GetValueFromCell(worksheet.Cells[i, 5], false); viewmodel.DelayReason = GetValueFromCell(worksheet.Cells[i, 6], false); viewmodel.OriginalRecommendation = GetOriginalRecommendation(worksheet.Cells[i, 7]); viewmodel.Risk = GetRisk(worksheet.Cells[i, 7]); viewmodel.ResponsiblePOCs = worksheet.Cells[i, 9].Value == null ? string.Empty : worksheet.Cells[i, 9].Value.ToString(); viewmodel.ResourcesRequired = GetCurrencyFromCell(worksheet.Cells[i, 10]); viewmodel.CostJustification = worksheet.Cells[i, 11].Value == null ? string.Empty : worksheet.Cells[i, 11].Value.ToString(); viewmodel.ScheduledCompletionDate = GetDateFromCell(worksheet.Cells[i, 12]); viewmodel.PlannedStartDate = GetDateFromCell(worksheet.Cells[i, 13]); viewmodel.PlannedFinishDate = GetDateFromCell(worksheet.Cells[i, 14]); viewmodel.ActualStartDate = GetDateFromCell(worksheet.Cells[i, 15]); viewmodel.ActualFinishDate = GetDateFromCell(worksheet.Cells[i, 16]); poams.Add(viewmodel); } catch (Exception ex) { throw ex; } } return(poams); }
public async Task <IActionResult> Create(POAMViewModel poam) { try { var entity = await _entityservice.CreatePOAMFromViewModel(poam); _context.POAMs.Add(entity); await _context.SaveChangesAsync(); } catch (Exception ex) { throw ex; } return(RedirectToAction("Index")); }
/// <summary> /// Form the view model from the excel worksheet /// </summary> /// <param name="worksheet"></param> /// <param name="headings"></param> /// <returns></returns> private List <POAMViewModel> GetViewModel(ExcelWorksheet worksheet, Dictionary <string, int> headings) { if (worksheet == null) { throw new ArgumentNullException(); } var poams = new List <POAMViewModel>(); for (int i = 2; i < worksheet.Dimension.Rows; i++) { var viewmodel = new POAMViewModel(); viewmodel.Recommendation = (headings.Any(dict => dict.Key.StartsWith("Recommended") && worksheet.Cells[i, headings.Where(keyvalue => keyvalue.Key.StartsWith("Recommended")).Select(item => item.Value).FirstOrDefault()].Value == null) ? string.Empty : worksheet.Cells[i, headings.Where(keyvalue => keyvalue.Key.StartsWith("Recommended")).Select(item => item.Value).FirstOrDefault()].Value.ToString()); if (string.IsNullOrEmpty(viewmodel.Recommendation)) { break; } viewmodel.ActualFinishDate = DateTime.Now; viewmodel.ActualStartDate = DateTime.Now; viewmodel.AuthSystem = "REGIS"; viewmodel.ControlID = "1"; viewmodel.CostJustification = "Minimum Operational Cost"; viewmodel.CSAMPOAMID = "2"; viewmodel.DelayReason = "Other"; viewmodel.ID = Guid.NewGuid(); viewmodel.Number = 5; viewmodel.OriginalRecommendation = "Lorem Ipsum doler"; viewmodel.PlannedFinishDate = DateTime.Now; viewmodel.PlannedStartDate = DateTime.Now; viewmodel.ResourcesRequired = 100.0M; viewmodel.ResponsiblePOCs = "SOC"; viewmodel.Risk = "Lorem Ipsum"; viewmodel.RiskLevel = "H"; viewmodel.ScheduledCompletionDate = DateTime.Now; viewmodel.Status = "Delayed"; poams.Add(viewmodel); } return(poams); }
/// <summary> /// Returns a fully filled POAM entity object /// </summary> /// <param name="viewmodel">View model object</param> /// <returns>POAM object</returns> public async Task <POAM> CreatePOAMFromViewModel(POAMViewModel viewmodel) { try { var poam = new POAM(); // Create the AuthSystem object var authsystem = CrateAuthSystem(viewmodel.AuthSystem); var risklevel = CreateRiskLevel(viewmodel.RiskLevel); var status = CreateStatus(viewmodel.Status); var delayreason = CreateDelayReason(viewmodel.DelayReason); var weakness = CrateWeakness(viewmodel.OriginalRecommendation, viewmodel.Risk); var pocs = CreateResponsiblePOCs(viewmodel.ResponsiblePOCs); // assign some fields synchronously poam.Number = viewmodel.Number; poam.CSAMPOAMID = viewmodel.CSAMPOAMID; poam.ControlID = viewmodel.ControlID; poam.Recommendation = viewmodel.Recommendation; poam.ResourcesRequired = viewmodel.ResourcesRequired; poam.CostJustification = viewmodel.CostJustification; poam.ScheduledCompletionDate = viewmodel.ScheduledCompletionDate; poam.PlannedStartDate = viewmodel.PlannedStartDate; poam.PlannedFinishDate = viewmodel.PlannedFinishDate; poam.ActualStartDate = viewmodel.ActualStartDate; poam.ActualFinishDate = viewmodel.ActualFinishDate; // assign the authsystem to POAM poam.AuthSystem = await authsystem; // assign the risklevel to POAM poam.RiskLevel = await risklevel; // assign the status to POAM poam.Status = await status; // assign the delay reason to POAM poam.DelayReason = await delayreason; // assign the weakness of the POAM poam.Weakness = await weakness; // assign the pocs to the POAM poam.ResponsiblePOCs = await pocs; return(poam); } catch (Exception ex) { throw ex; } }