Ejemplo n.º 1
0
            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));
            }
Ejemplo n.º 2
0
            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));
            }
Ejemplo n.º 3
0
            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));
            }