Exemplo n.º 1
0
        public async Task <ActionResult <VoucherListDTO> > LookupVoucher(
            [FromQuery] int?fiscalYearId,
            [FromQuery] int?accountId,
            [FromQuery] int?ledgerNo)
        {
            try
            {
                var voucherQuery = _voucherRepo.GetVouchers();

                if (fiscalYearId.HasValue)
                {
                    voucherQuery = voucherQuery.Where(v => v.FiscalYearId == fiscalYearId.Value);
                }
                if (accountId.HasValue)
                {
                    voucherQuery = voucherQuery.Where(v => v.AccountId == accountId.Value);
                }
                if (ledgerNo.HasValue)
                {
                    voucherQuery = voucherQuery.Where(v => v.LedgerNo == ledgerNo.Value);
                }

                var vouchers = await voucherQuery
                               .OrderBy(v => v.VoucherId)
                               .ToListAsync();

                var voucherList = _mapper.Map <List <Voucher>, List <VoucherDTO> >(vouchers);

                var voucherListCount = voucherList.Count;

                var dto = new VoucherListDTO
                {
                    Vouchers     = voucherList,
                    TotalItems   = voucherListCount,
                    TotalPages   = 1,
                    CurrentPage  = 1,
                    ItemsPerPage = voucherListCount
                };

                return(dto);
            }
            catch (Exception e)
            {
                _logger.LogError("Exception occurred during a Voucher lookup.\nError: " + e.Message);
                return(BadRequest());
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult <VoucherListDTO> > GetVouchers([FromQuery] int page = 1, [FromQuery] int itemsPerPage = 20)
        {
            try
            {
                if (page < 1 || itemsPerPage < 1)
                {
                    return(BadRequest("Request contained one or more invalid paging values."));
                }

                var vouchers = await _voucherRepo.GetVouchers()
                               .Skip((page - 1) * itemsPerPage)
                               .Take(itemsPerPage)
                               .OrderBy(f => f.VoucherId)
                               .ToListAsync();

                var voucherCount = await _voucherRepo.GetVouchers().CountAsync();

                var voucherList = _mapper.Map <List <Voucher>, List <VoucherDTO> >(vouchers);

                var dto = new VoucherListDTO
                {
                    Vouchers     = voucherList,
                    TotalItems   = voucherCount,
                    TotalPages   = decimal.ToInt32(Math.Ceiling((decimal)voucherCount / (decimal)itemsPerPage)),
                    CurrentPage  = page,
                    ItemsPerPage = itemsPerPage
                };

                return(dto);
            }
            catch (Exception e)
            {
                _logger.LogError("Exception occurred while attempting to retrieve Vouchers.\nError: " + e.Message);
                return(BadRequest());
            }
        }