Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        public async Task <CaseActionViewModel> GetCaseAction(Guid caseId)
        {
            Case currentCase = await _caseUnitOfWork.CaseRepository.GetByIDAsync(caseId);

            CaseActionViewModel caseAction = GetCaseActionViewModel(currentCase);

            return(caseAction);
        }
Exemplo n.º 3
0
        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;
            }
        }
Exemplo n.º 4
0
        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));
        }