/// <summary> /// обрабатывает решение модератора по проекту /// </summary> /// <param name="form"></param> public void HandleModeratorForm(ModeratorReviewForm form) { var actualSData = _repositories.ServiceData.FindActual(form.ProjectId); var statusOld = _repositories.Statuses.Find(actualSData.StatusId); if (statusOld.Title.Equals(StatusesManager.Waiting)) //если старый статус - ожидание модерации _endowmentHandlers.ServiceData .Edit(actualSData.Id, form.StatusId, form.Comment); //заменяем актуальным else if (statusOld.Title.Equals(StatusesManager.Return))//если прокет был возвращен на доработку { actualSData.IsLastInformation = false; // перестает быть актуальным _endowmentHandlers // создаем новую запись с текущим решением .ServiceData .Create(form.ModeratorId, form.ProjectId, form.StatusId, form.Comment); } var statusNew = _repositories.Statuses.Find(form.StatusId); if (statusNew.Title.Equals(StatusesManager.Locked) || statusNew.Title.Equals(StatusesManager.Return)) {// если новый статус "вернуть на доработку" или "заблокировать" _endowmentHandlers.QueueProject.Delete(form.ProjectId); //удаляем из очереди _endowmentHandlers.SaveChanges(); } else {//если принят _queueService.AppointLevelUpModer(form.ProjectId);//левелап } }
public ActionResult CreateReview(ModeratorReviewForm form) { _projectService.HandleModeratorForm(form); return RedirectToAction("Index"); }