public PartialViewResult Edit(ProjectPrimaryKey projectPrimaryKey, ProjectProjectStatusPrimaryKey projectProjectStatusPrimaryKey)
        {
            var projectProjectStatus   = projectProjectStatusPrimaryKey.EntityObject;
            var viewModel              = new EditProjectProjectStatusViewModel(projectProjectStatus);
            var projectStatusFirmaPage = FirmaPageTypeEnum.ProjectStatusFromTimelineDialog.GetFirmaPage();

            return(ViewEdit(viewModel, true, projectProjectStatus.ProjectProjectStatusCreatePerson.GetFullNameFirstLast(), projectProjectStatus.GetDeleteProjectProjectStatusUrl(), projectStatusFirmaPage, projectPrimaryKey.EntityObject, projectProjectStatus.IsFinalStatusUpdate));
        }
 public ActionResult NewFromGrid(ProjectPrimaryKey projectPrimaryKey, EditProjectProjectStatusViewModel viewModel)
 {
     if (!ModelState.IsValid)
     {
         var projectStatusFirmaPage = FirmaPageTypeEnum.ProjectStatusFromGridDialog.GetFirmaPage();
         return(ViewEdit(viewModel, false, null, null, projectStatusFirmaPage, projectPrimaryKey.EntityObject, false));
     }
     return(MakeTheNewProjectProjectStatus(projectPrimaryKey, viewModel));
 }
        public PartialViewResult New(ProjectPrimaryKey projectPrimaryKey)
        {
            var viewModel      = new EditProjectProjectStatusViewModel();
            var allowEditFinal = AllowUserToSetNewStatusReportToFinal(projectPrimaryKey.EntityObject, CurrentFirmaSession);

            viewModel.IsFinalStatusUpdate = allowEditFinal;
            var projectStatusFirmaPage = FirmaPageTypeEnum.ProjectStatusFromTimelineDialog.GetFirmaPage();

            return(ViewEdit(viewModel, true, null, null, projectStatusFirmaPage, projectPrimaryKey.EntityObject, false));
        }
        private PartialViewResult ViewEdit(EditProjectProjectStatusViewModel viewModel, bool allowEditUpdateDate, string personCreatedDisplay, string deleteUrl, FirmaPage firmaPage, ProjectFirmaModels.Models.Project project, bool isFinalStatusReport)
        {
            var projectStatusFirmaPage             = firmaPage;
            var allProjectStatuses                 = HttpRequestStorage.DatabaseEntities.ProjectStatuses.ToList();
            var projectStatusesForLegend           = HttpRequestStorage.DatabaseEntities.ProjectStatuses.OrderBy(ps => ps.ProjectStatusSortOrder).ToList();
            var projectStatusLegendDisplayViewData = new ProjectStatusLegendDisplayViewData(projectStatusesForLegend);
            var viewData = new EditProjectProjectStatusViewData(project, allowEditUpdateDate, personCreatedDisplay, deleteUrl, projectStatusFirmaPage, CurrentFirmaSession, allProjectStatuses, projectStatusLegendDisplayViewData, isFinalStatusReport);

            return(RazorPartialView <EditProjectProjectStatus, EditProjectProjectStatusViewData, EditProjectProjectStatusViewModel>(viewData, viewModel));
        }
        public ActionResult Edit(ProjectPrimaryKey projectPrimaryKey, ProjectProjectStatusPrimaryKey projectProjectStatusPrimaryKey, EditProjectProjectStatusViewModel viewModel)
        {
            var projectProjectStatus = projectProjectStatusPrimaryKey.EntityObject;
            var project = projectPrimaryKey.EntityObject;

            if (!ModelState.IsValid)
            {
                var projectStatusFirmaPage = FirmaPageTypeEnum.ProjectStatusFromTimelineDialog.GetFirmaPage();
                return(ViewEdit(viewModel, true, projectProjectStatus.ProjectProjectStatusCreatePerson.GetFullNameFirstLast(), projectProjectStatus.GetDeleteProjectProjectStatusUrl(), projectStatusFirmaPage, project, projectProjectStatus.IsFinalStatusUpdate));
            }
            viewModel.UpdateModel(projectProjectStatus, CurrentFirmaSession);
            return(new ModalDialogFormJsonResult());
        }
        private ActionResult MakeTheNewProjectProjectStatus(ProjectPrimaryKey projectPrimaryKey, EditProjectProjectStatusViewModel viewModel)
        {
            var project = projectPrimaryKey.EntityObject;
            var projectStatusFromViewModel = new ProjectStatusPrimaryKey(viewModel.ProjectStatusID).EntityObject;
            var projectProjectStatus       =
                ProjectProjectStatus.CreateNewBlank(project, projectStatusFromViewModel, CurrentFirmaSession.Person);

            viewModel.UpdateModel(projectProjectStatus, CurrentFirmaSession);
            project.ProjectProjectStatuses.Add(projectProjectStatus);
            HttpRequestStorage.DatabaseEntities.SaveChanges();
            return(new ModalDialogFormJsonResult());
        }