public ActionResult FillProject(Project model) { if (ModelState.IsValid) { var initial = RepositoryContext.Current.GetOne <Project>(t => t._id == model._id); initial.Name = model.Name; initial.Description = model.Description; initial.AddressName = model.AddressName; initial.Region = model.Region; initial.Address = new Address { Lat = model.Address.Lat, Lng = model.Address.Lng }; initial.Tags = model.Tags; try { ProjectStateManager.StateManagerFactory(initial, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).FillInformation(initial); return(RedirectToAction("Project", "BaseProject", new { id = model._id })); } catch (Exception ex) { ModelState.AddModelError("Name", ex.Message); } } return(View(model)); }
public ActionResult Comission(Comission comission) { if (!ModelState.IsValid) { return(View(comission)); } if (comission.CommissionTime < DateTime.Now) { ModelState.AddModelError("CommissionTime", "Время комиссии должно быть больше чем текущее время"); return(View(comission)); } RepositoryContext.Current.Add(comission); foreach (var project in comission.Projects) { if (comission.Type == ComissionType.Comission) { ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)) .Comission(); } else { ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)) .Ispolcom(); } } return(RedirectToAction("All", "BaseProject")); }
public ActionResult TemplateProject(Template model) { if (ModelState.IsValid) { var initial = RepositoryContext.Current.GetOne <Project>(t => t._id == model._id) as Template; if (initial == null) { throw new ArgumentNullException("cannot find project"); } initial.Name = model.Name; initial.Description = model.Description; initial.AddressName = model.AddressName; initial.IsInList = model.IsInList; initial.Region = model.Region; initial.Area = model.Area; initial.CadastrValue = model.CadastrValue; initial.Address = new Address { Lat = model.Address.Lat, Lng = model.Address.Lng }; initial.Tags = model.Tags; try { ProjectStateManager.StateManagerFactory(initial, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).FillInformation(initial); return(RedirectToAction("Project", "BaseProject", new { id = model._id })); } catch (Exception ex) { ModelState.AddModelError("Name", ex.Message); } } return(View(model)); }
public ActionResult NewResponseToProject(InvestorResponse model) { if (ModelState.IsValid) { ProjectStateManager.StateManagerFactory(model.ProjectId, null, null).ResponsedOnProject(model); return(RedirectToAction("Index")); } return(View(model)); }
public ActionResult InvestorSelected(Project project) { ProjectStateManager .StateManagerFactory( project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)) .InvestorSelected(); return(RedirectToAction("Project", "BaseProject", new { id = project._id })); }
public ActionResult CreateTemplateProject(Template model) { if (ModelState.IsValid) { ProjectStateManager.StateManagerFactory(model, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).CreateProject(model); return(RedirectToAction("Project", "BaseProject", new { id = model._id })); } return(View(model)); }
public MainWindow() { InitializeComponent(); ProjectStateManager = ProjectStateManager.Instance; GraphView_StateManager graphView_StateManager = new GraphView_StateManager(); ProjectStateManager.StateManagers.Add(graphView_StateManager); GraphViewMainGrid.Children.Add(graphView_StateManager.View); Closing += graphView_StateManager.Dispose; }
public ActionResult AddInvolvedOrganizations(AddDocumentViewModel model) { ViewBag.DocumentList = RepositoryContext.Current.All <TaskTemplate>(t => t.Type == TaskTypes.InvolvedOrganiztion) .Select(template => template.Title) .ToList(); if (!ModelState.IsValid) { return(View(model)); } var project = RepositoryContext.Current.GetOne <Project>(p => p._id == model.PorjectId); IQueryable <TaskTemplate> templates = RepositoryContext.Current.All <TaskTemplate>(t => model.Documents.Contains(t.Title)); var tasks = new List <ProjectTask>(); foreach (var template in templates) { tasks.Add(new ProjectTask { _id = ObjectId.GenerateNewId().ToString(), ProjectId = model.PorjectId, Body = template.Body, Title = template.Title, Type = template.Type, Step = ProjectWorkflow.State.InvolvedOrganizations, CreationTime = DateTime.Now }); } if (project.Tasks == null) { project.Tasks = new List <ProjectTask>(); } project.Tasks.RemoveAll(p => p.Type == TaskTypes.InvolvedOrganiztion); project.Tasks.AddRange(tasks); RepositoryContext.Current.Update(project); try { ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).DocumentUpdate(); } catch (Exception) { } return(RedirectToAction("Project", "BaseProject", new { id = model.PorjectId })); }
public ActionResult StatusInfo(string id) { var project = RepositoryContext.Current.GetOne <Project>(p => p._id == id); if (project == null) { return(HttpNotFound("проект не найден")); } ViewBag.AvaibleTriggers = ProjectStateManager.StateManagerFactory( project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)) .GetAvaibleTriggers(); return(PartialView(project.WorkflowState.CurrentState.ToString(), project)); }
public ActionResult InvolvedReport(ReportResponse model) { if (!ModelState.IsValid) { return(View(model)); } var project = RepositoryContext.Current.GetOne <Project>(p => p._id == model.ProjectId); ProjectTask task = project.Tasks.Find(t => t._id == model.TaskId); if (task.TaskReport == null) { task.TaskReport = new List <Report>(); } var report = new Report { _id = ObjectId.GenerateNewId().ToString(), ReportTime = DateTime.Now, Body = model.Body, ReportResponse = model }; task.TaskReport.Add(report); task.IsComplete = model.IsApproved; RepositoryContext.Current.Update(project); if (task.Step == ProjectWorkflow.State.WaitInvolved) { if (project.Tasks.Any(t => t.Type == TaskTypes.InvolvedOrganiztion && t.TaskReport == null)) { ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).InvolvedOrganizationUpdate(); } else { ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).ToComission(); } } return(RedirectToAction("Project", "BaseProject", new { id = project._id })); }
public ActionResult Triggers(string projectId, string trigger) { var project = RepositoryContext.Current.GetOne <Project>(p => p._id == projectId); if (project == null) { return(HttpNotFound("проект не найден")); } ProjectWorkflow.Trigger triggerEnum; Enum.TryParse(trigger, out triggerEnum); switch (triggerEnum) { case ProjectWorkflow.Trigger.FillInformation: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)) .FillInformation(project); break; case ProjectWorkflow.Trigger.UpdateInformation: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)) .UpdateInformation(); break; case ProjectWorkflow.Trigger.ReOpen: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)) .ReOpen(); break; case ProjectWorkflow.Trigger.InvestorResponsed: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)) .InvestorResponsed(); break; case ProjectWorkflow.Trigger.InvestorSelected: return(InvestorSelected(project)); case ProjectWorkflow.Trigger.DocumentUpdate: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)) .DocumentUpdate(); break; case ProjectWorkflow.Trigger.FillInvolvedOrganization: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).FillInvolvedOrganization(); break; case ProjectWorkflow.Trigger.InvolvedOrganizationUpdate: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).InvolvedOrganizationUpdate(); break; case ProjectWorkflow.Trigger.ToComission: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).ToComission(); break; case ProjectWorkflow.Trigger.Comission: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).Comission(); break; case ProjectWorkflow.Trigger.ComissionFix: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).ComissionFix(); break; case ProjectWorkflow.Trigger.ComissionFixUpdate: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).ComissionFixUpdate(); break; case ProjectWorkflow.Trigger.ToIspolcom: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).ToIspolcom(); break; case ProjectWorkflow.Trigger.Ispolcom: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).Ispolcom(); break; case ProjectWorkflow.Trigger.ToIspolcomFix: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).ToIspolcomFix(); break; case ProjectWorkflow.Trigger.IspolcomFixUpdate: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).IspolcomFixUpdate(); break; case ProjectWorkflow.Trigger.ToMinEconomy: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).ToMinEconomy(); break; case ProjectWorkflow.Trigger.MinEconomyResponsed: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).MinEconomyResponsed(); break; case ProjectWorkflow.Trigger.UpdatePlan: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).UpdatePlan(); break; case ProjectWorkflow.Trigger.ApprovePlan: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).ApprovePlan(); break; case ProjectWorkflow.Trigger.UpdateRealization: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).UpdateRealization(); break; case ProjectWorkflow.Trigger.RejectDocument: ProjectStateManager.StateManagerFactory(project, User.Identity.Name, Roles.GetRolesForUser(User.Identity.Name)).RejectDocument(); break; default: throw new ArgumentOutOfRangeException(); } return(RedirectToAction("Project", "BaseProject", new { id = project._id })); }