public void CreateNewInvoice(InvoiceDto invoiceDto)
 {
     using (NpgsqlConnection connection = this.databaseConnectionFactory.Instance.Create())
     {
         connection.Open();
         using (NpgsqlTransaction transaction = connection.BeginTransaction())
         {
             try
             {
                 Invoice            invoice            = this.dtoToEntityMapper.Map <InvoiceDto, Invoice>(invoiceDto);
                 long               invoiceId          = this.invoicesService.Insert(connection, invoice);
                 InvoiceCustomerDto invoiceCustomerDto = new InvoiceCustomerDto
                 {
                     InvoiceId  = invoiceId,
                     CustomerId = invoiceDto.CustomerId
                 };
                 InvoiceCustomer invoiceCustomer = this.dtoToEntityMapper.Map <InvoiceCustomerDto, InvoiceCustomer>(invoiceCustomerDto);
                 this.invoiceCustomerService.Insert(connection, invoiceCustomer);
                 IEnumerable <InvoiceItem> invoiceItems = this.dtoToEntityMapper.MapList <IEnumerable <InvoiceItemDto>, IEnumerable <InvoiceItem> >(invoiceDto.InvoiceItems);
                 IEnumerable <InvoiceItem> calculatedInvoiceItemsWithBasicDiscount          = this.invoiceItemService.IncludeBasicDiscountForPaying(connection, invoiceItems);
                 IEnumerable <InvoiceItem> calculatedInvoiceItemsWithBasicAndActionDiscount = this.invoiceItemService.IncludeActionDiscountForPaying(connection, invoiceItems);
                 this.invoiceItemService.InsertList(connection, calculatedInvoiceItemsWithBasicAndActionDiscount, transaction);
                 this.invoiceItemInvoicesService.InsertList(connection, calculatedInvoiceItemsWithBasicDiscount, invoiceId, transaction);
                 transaction.Commit();
             }
             catch (Exception ex)
             {
                 transaction.Rollback();
                 Console.Write(ex.Message);
             }
         }
     }
 }
示例#2
0
        public InvoiceCustomerDto ToInvoiceCustomerDto()
        {
            var customer        = JsonConvert.DeserializeObject <CustomerDto>(Json);
            var invoiceCustomer = new InvoiceCustomerDto()
            {
                CustomerId = customer.Id,
                Name       = customer.UserName,
                Address    = customer.Address
            };

            return(invoiceCustomer);
        }