Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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"));
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        /// <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;
            }
        }