public async Task <GetCreditMemoForEditOutput> GetCreditMemoForEdit(EntityDto input)
        {
            var result = new CreditMemoEditDto();
            var header = await Repository
                         .GetAllIncluding(x => x.Customer, x => x.Salesman)
                         .FirstOrDefaultAsync(x => x.Id == input.Id);

            if (header != null)
            {
                ObjectMapper.Map(header, result);
                var details = await _creditMemoDetailRepository.GetAll()
                              .Include(x => x.Product)
                              .Where(x => x.CreditMemoHeaderId == header.Id)
                              .ToListAsync();

                result.CreditMemoDetails = ObjectMapper.Map <List <CreditMemoEditDetailsDto> >(details);
            }

            var creditMemoEditDto = ObjectMapper.Map <CreditMemoEditDto>(result);

            return(new GetCreditMemoForEditOutput
            {
                CreditMemoEdit = creditMemoEditDto
            });
        }
        public async Task <CreditMemoEditDto> GetCreditMemoAsync(int creditMemoId)
        {
            var result   = new CreditMemoEditDto();
            var invoices = await Repository
                           .GetAllIncluding(x => x.Customer, x => x.Salesman)
                           .FirstOrDefaultAsync(x => x.Id == creditMemoId);

            if (invoices != null)
            {
                ObjectMapper.Map(invoices, result);
                var details = await _creditMemoDetailRepository.GetAll()
                              .Include(x => x.Product)
                              .Where(x => x.CreditMemoHeaderId == invoices.Id)
                              .ToListAsync();

                result.CreditMemoDetails = ObjectMapper.Map <List <CreditMemoEditDetailsDto> >(details);
            }

            return(result);
        }