Beispiel #1
0
        public override async Task <IReadOnlyCollection <DetailedBillDto> > HandleAsync(DetailedBillsQuery query)
        {
            try
            {
                var cmd = new CommandDefinition(
                    $"select bill.*, supplier.{nameof(Supplier.Id)}, supplier.{nameof(Supplier.Name)}" +
                    $"from {nameof(Bill)} bill left join {nameof(Supplier)} supplier " +
                    $"on bill.{nameof(Bill.SupplierId)} = supplier.{nameof(Supplier.Id)}",
                    this.Transaction);

                var detailedBills = new List <DetailedBillDto>();

                await using (var reader = await SqlMapper.ExecuteReaderAsync(this.Connection, cmd).ConfigureAwait(false))
                {
                    while (await reader.ReadAsync().ConfigureAwait(false))
                    {
                        var detailedBillDto = new DetailedBillDto()
                        {
                            Id = await reader.GetSafeAsync <long>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false),
                            AdditionalCosts  = await reader.GetSafeAsync <double>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false),
                            Agio             = await reader.GetSafeAsync <double>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false),
                            Amount           = await reader.GetSafeAsync <double>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false),
                            Code             = await reader.GetSafeAsync <string>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false),
                            DueDate          = await reader.GetSafeAsync <DateTime>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false),
                            Notes            = await reader.GetSafeAsync <string>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false),
                            PaymentDate      = await reader.GetSafeAsync <DateTime?>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false),
                            RegistrationDate = await reader.GetSafeAsync <DateTime>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false),
                            ReleaseDate      = await reader.GetSafeAsync <DateTime>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false),
                            SupplierHeader   = new SupplierHeaderDto()
                            {
                                Id   = await reader.GetSafeAsync <long>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false),
                                Name = await reader.GetSafeAsync <string>(DbSchemaHelper.ComposeColumnName(nameof(Bill), nameof(Bill.Id))).ConfigureAwait(false)
                            }
                        };
                    }
                }

                return(detailedBills.ToArray());
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #2
0
 public abstract Task <IReadOnlyCollection <DetailedBillDto> > HandleAsync(DetailedBillsQuery query);