public async Task <ActionResult> Review(Guid id, CaseActionViewModel caseModel) { try { if (ModelState.IsValid) { caseModel.CaseId = id; EntityResult result = await _caseService.UpdateCaseStatus(caseModel); if (result.Succeeded) { AddMessageToTempData(CommonResources.SavedSuccessfullyMessage, BusinessSolutions.MVCCommon.MessageType.Success); return(RedirectToAction("Index")); } AddErrors(result); } } catch (Exception ex) { Logger.Error(ex); AddMessageToView(CommonResources.UnExpectedError, BusinessSolutions.MVCCommon.MessageType.Error); } caseModel.Case = await _caseService.GetCase(id); return(View(caseModel)); }
public async Task <CaseActionViewModel> GetCaseAction(Guid caseId) { Case currentCase = await _caseUnitOfWork.CaseRepository.GetByIDAsync(caseId); CaseActionViewModel caseAction = GetCaseActionViewModel(currentCase); return(caseAction); }
public async Task <EntityResult> UpdateCaseStatus(CaseActionViewModel caseModel) { try { if (caseModel == null) { throw new ArgumentNullException(nameof(caseModel)); } Case currentCase = await _caseUnitOfWork.CaseRepository.GetByIDAsync(caseModel.CaseId); if (currentCase == null) { throw new ArgumentException(CasesResource.CaseIsNotExist, nameof(caseModel)); } var caseAction = new CaseAction { CaseActionDate = DateTime.Now, CaseId = currentCase.Id, Comment = caseModel.Comment, OldStatus = currentCase.CaseStatus, Status = (Sanable.Cases.Domain.Model.CaseStatus)caseModel.Status, StartApplyDate = caseModel.StartApplyDate, }; currentCase.CaseActions.Add(caseAction); currentCase.CaseStatus = caseAction.Status; if (caseAction.Status == Sanable.Cases.Domain.Model.CaseStatus.Suspended) { currentCase.CaseSuspensionDate = caseAction.StartApplyDate; } await _caseUnitOfWork.SaveAsync(); return(EntityResult.Success); } catch (Exception ex) { _logger.Error(ex); throw; } }
public async Task <ActionResult> Activate(Guid id, ActivateCaseViewModel caseModel) { try { if (ModelState.IsValid) { caseModel.CaseId = id; CaseActionViewModel caseActionViewModel = new CaseActionViewModel { CaseId = caseModel.CaseId, Status = CaseStatus.Approved, StartApplyDate = caseModel.StartApplyDate, Comment = caseModel.Comment, CaseActionDate = DateTime.Now, }; EntityResult result = await _caseService.UpdateCaseStatus(caseActionViewModel); if (result.Succeeded) { AddMessageToTempData(CommonResources.SavedSuccessfullyMessage, BusinessSolutions.MVCCommon.MessageType.Success); return(RedirectToAction("Index")); } AddErrors(result); } } catch (Exception ex) { Logger.Error(ex); AddMessageToView(CommonResources.UnExpectedError, BusinessSolutions.MVCCommon.MessageType.Error); } caseModel.Case = await _caseService.GetCase(id); return(View(caseModel)); }