public void AddRows(JsonResponseModel model, Masterplan project) { AddRow(model, project.ProjectName, "Fesability", project.StartDate, project.FesabilityEnd.Value, "blue"); AddRow(model, project.ProjectName, "Conceptual", project.FesabilityEnd.Value, project.ConceptualEnd.Value, "yellow"); AddRow(model, project.ProjectName, "Definition", project.ConceptualEnd.Value, project.DefinitionEnd.Value, "purple"); AddRow(model, project.ProjectName, "Design&Construct", project.DefinitionEnd.Value, project.DesignConstructEnd.Value, "grey"); AddRow(model, project.ProjectName, "Startup", project.DesignConstructEnd.Value, project.PredictedEndDate, "orange"); if (project.FesabilityEnd != null && project.FesabilityActualEnd != null) { var check = project.FesabilityActualEnd.Value.CompareTo(project.FesabilityEnd.Value); if (check <= 0) { AddRow(model, project.ProjectName, "Fesability Actual", project.StartDate, project.FesabilityActualEnd.Value, "green"); } if (check > 0) { AddRow(model, project.ProjectName, "Fesability Actual", project.StartDate, project.FesabilityActualEnd.Value, "red"); } } if (project.FesabilityActualEnd != null && project.ConceptualActualEnd != null) { var check = project.ConceptualActualEnd.Value.CompareTo(project.ConceptualEnd.Value); if (check <= 0) { AddRow(model, project.ProjectName, "Conceptual Actual", project.FesabilityActualEnd.Value, project.ConceptualActualEnd.Value, "green"); } else { AddRow(model, project.ProjectName, "Conceptual Actual", project.FesabilityActualEnd.Value, project.ConceptualActualEnd.Value, "red"); } } if (project.ConceptualActualEnd != null && project.DefinitionActualEnd != null) { var check = project.DefinitionActualEnd.Value.CompareTo(project.DefinitionEnd.Value); if (check <= 0) { AddRow(model, project.ProjectName, "Definition Actual", project.ConceptualActualEnd.Value, project.DefinitionActualEnd.Value, "green"); } else { AddRow(model, project.ProjectName, "Definition Actual", project.ConceptualActualEnd.Value, project.DefinitionActualEnd.Value, "red"); } } if (project.DefinitionActualEnd != null && project.DesignConstructActualEnd != null) { var check = project.DefinitionActualEnd.Value.CompareTo(project.DefinitionEnd.Value); if (check <= 0) { AddRow(model, project.ProjectName, "Design&Construct Actual", project.DefinitionActualEnd.Value, project.DesignConstructActualEnd.Value, "green"); } else { AddRow(model, project.ProjectName, "Design&Construct Actual", project.DefinitionActualEnd.Value, project.DesignConstructActualEnd.Value, "red"); } } if (project.DesignConstructActualEnd != null) { var check = project.ActualEndDate.Value.CompareTo(project.PredictedEndDate); if (check <= 0) { AddRow(model, project.ProjectName, "Startup Actual", project.DesignConstructActualEnd.Value, project.ActualEndDate.Value, "green"); } else { AddRow(model, project.ProjectName, "Startup Actual", project.DesignConstructActualEnd.Value, project.ActualEndDate.Value, "red"); } } }
public async Task <IActionResult> AddProject(AddProjectViewModel model, string errorMessage = null) { ViewBag.ErrorMessage = errorMessage; if (ModelState.IsValid) { if (CompareDate(model.StartDate, model.FesabilityEndDate.Value)) { return(await AddProject(model, "Feasibility: End Date is before Start Date")); } if (CompareDate(model.FesabilityEndDate.Value, model.ConceptualEndDate.Value)) { return(await AddProject(model, "Conceptual: End Date is before Start Date")); } if (CompareDate(model.ConceptualEndDate.Value, model.DefinitionEndDate.Value)) { return(await AddProject(model, "Definition: End Date is before Start Date")); } if (CompareDate(model.DefinitionEndDate.Value, model.DesignConstructEndDate.Value)) { return(await AddProject(model, "Design&Construct: End Date is before Start Date")); } if (CompareDate(model.DesignConstructEndDate.Value, model.PredictedEndDate)) { return(await AddProject(model, "Startup: End Date is before Start Date")); } if (model.StartupLeader == null && model.AdditionalStartupLeader == null) { return(AddProject("Select Startup leader or add a new one!")); } if (model.AdditionalPcisResource != null) { ctx.Pcisresource.Add(new Pcisresource { Name = model.AdditionalPcisResource }); ctx.SaveChanges(); } if (model.AdditionalPTResource != null) { ctx.Ptresource.Add(new Ptresource { Name = model.AdditionalPTResource }); ctx.SaveChanges(); } if (model.AdditionalEIResource != null) { ctx.Eiresource.Add(new Eiresource { Name = model.AdditionalEIResource }); ctx.SaveChanges(); } if (model.AdditionalStartupLeader != null) { ctx.Leaders.Add(new Leaders { Name = model.AdditionalStartupLeader }); ctx.SaveChanges(); } Masterplan project2Add = new Masterplan { ActualEndDate = null, ActualEndFiscalYear = null, ActualSpendingTargetEtc = false, Category = model.Category, Cm = model.CM, ConceptualActualEnd = null, ConceptualComments = null, ConceptualCompleted = false, ConceptualDeliverables = null, ConceptualEnd = model.ConceptualEndDate, DefinitionActualEnd = null, DefinitionComments = null, DefinitionDeliverables = null, DefinitionDone = false, DefinitionEnd = model.DefinitionEndDate, DesignConstructActualEnd = null, DesignConstructcCompleted = false, DesignConstructComments = null, DesignConstructDeliverables = null, DesignConstructEnd = model.DesignConstructEndDate, Eiresource = model.AdditionalEIResource ?? model.EIResource, Etc = model.ETC, Saving = model.Savings, FesabilityActualEnd = null, FesabilityComments = null, FesabilityCompletetd = false, FesabilityDeliverables = null, FesabilityEnd = model.FesabilityEndDate, FiscalYearStart = Convert2FiscalYear(model.StartDate), FundingType = model.FundingType, ImpactedDepartment = model.ImpactedDepartment, LeadingDepartment = model.LeadingDepartment, MetSuccesCriteria = false, Ora = null, OtherComments = model.Comments, PcisResource = model.AdditionalPcisResource ?? model.PcisResource, PlantAe = model.PlantAE, PredictedEndDate = model.PredictedEndDate, PredictedEndFiscalYear = Convert2FiscalYear(model.PredictedEndDate), Priority = model.Priority, ProjectLeader = (await _userManager.FindByNameAsync(User.Identity.Name)).Fullname, ProjectName = model.ProjectName, ProjectType = model.ProjectType, Ptresource = model.AdditionalPTResource ?? model.PTResource, StartDate = model.StartDate, StartupComments = null, StartupLeader = model.AdditionalStartupLeader ?? model.StartupLeader, Status = model.Status, TeamCharter = model.TeamCharter }; ctx.Masterplan.Add(project2Add); ctx.SaveChanges(); return(RedirectToAction("ViewProjects", "Project", new { message = "Project succesfully added!" })); } return(View(model)); }