public async Task <Result <int> > Handle(DeleteClaimCommand command, CancellationToken cancellationToken) { var claim = await _claimsRepository.GetByIdAsync(command.Id); await _claimsRepository.DeleteAsync(claim); await _unitOfWork.Commit(cancellationToken); return(Result <int> .Success(claim.Id)); }
public async Task <Result <GetClaimByIdQueryResponse> > Handle(GetClaimByIdQuery request, CancellationToken cancellationToken) { var claim = await _repository.GetByIdAsync(request.Id); List <GetClaimItemDto> claimItems = new List <GetClaimItemDto>(); foreach (ClaimItem item in claim.ClaimItems) { claimItems.Add(new GetClaimItemDto { Payee = item.Payee, Date = item.Date, Description = item.Description, Amount = item.Amount, USDAmount = item.USDAmount, Image = item.Image, CurrencySymbol = item.Currency.Symbol, CategoryCode = item.ClaimCategory.Code, }); } GetClaimByIdQueryResponse res = new GetClaimByIdQueryResponse { Title = claim.Title, RequesterId = claim.RequesterId, ApproverId = claim.ApproverId, SubmitDate = claim.SubmitDate, ApprovalDate = claim.ApprovalDate, ProcessedDate = claim.ProcessedDate, TotalAmount = claim.TotalAmount, Status = claim.Status, RequesterComments = claim.RequesterComments, ApproverComments = claim.ApproverComments, FinanceComments = claim.FinanceComments, ClaimItemsDtos = claimItems }; return(Result <GetClaimByIdQueryResponse> .Success(res)); }
public async Task <Result <int> > Handle(UpdateClaimCommand command, CancellationToken cancellationToken) { Claim claim = await _claimsRepository.GetByIdAsync(command.Id); if (claim == null) { throw new ApplicationException("claim not found"); } claim.Title = command.Title; claim.ApproverId = command.ApproverId; claim.SubmitDate = command.SubmitDate; claim.RequesterComments = command.RequesterComments; IList <ClaimItem> claimItems = new List <ClaimItem>(); foreach (UpdateClaimCommandItemDto i in command.ClaimItems) { claimItems.Add(new ClaimItem { Payee = i.Payee, Date = i.Date, Description = i.Description, Amount = i.Amount, USDAmount = i.USDAmount, Image = i.Image, ClaimId = i.ClaimId, ClaimCategoryId = i.ClaimCategoryId, CurrencyId = i.CurrencyId, }); } claim.ClaimItems = claimItems; await _claimsRepository.UpdateAsync(claim); await _unitOfWork.Commit(cancellationToken); return(Result <int> .Success(claim.Id)); }