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); } } } }
public Invoice Build() { var invoiceDate = new DateTimeOffset(2016, 12, 12, 0, 0, 0, TimeSpan.Zero); var dueDate = invoiceDate.AddDays(7); var customer = new InvoiceCustomer("Customer", new [] { "Address" }); return(new Invoice("1", Guid.Empty.ToString(), invoiceDate, dueDate, customer, lines)); }
public void Insert(IDbConnection connection, InvoiceCustomer invoiceCustomer, IDbTransaction transaction = null) { connection.Execute(InvoiceCustomerQueries.Insert, new { invoiceId = invoiceCustomer.InvoiceId.Content, customerId = invoiceCustomer.CustomerId.Content }); }
public Invoice Build() { var invoiceDate = new DateTimeOffset(2016, 12, 12, 0, 0, 0, TimeSpan.Zero); var dueDate = invoiceDate.AddDays(7); var customer = new InvoiceCustomer("Customer", new [] { "Address" }); var lines = new[] { new InvoiceLineBuilder().Build() }; return(new Invoice("1", invoiceDate, dueDate, customer, lines)); }
public void Constructor_should_assign_Name() { // Arrange const string expected = "name"; // Act var actual = new InvoiceCustomer(expected, new List <string>()).Name; // Assert Assert.Equal(expected, actual); }
public void Constuctor_should_assign_InvoiceCustomer() { // Arrange var invoiceDate = new DateTimeOffset(2016, 12, 5, 0, 0, 0, TimeSpan.Zero); var dueDate = new DateTimeOffset(2016, 12, 12, 0, 0, 0, TimeSpan.Zero); var customer = new InvoiceCustomer("Microsoft", new [] { "Falkoner Alle" }); // Act var actual = new Invoice("1", invoiceDate, dueDate, customer, null).DueDate; // Assert Assert.Equal(dueDate, actual); }
public void Constructor_should_assign_immutable_AddressLines() { // Arrange var addressLines = new List <string> { "line 1" }; // Act var actual = new InvoiceCustomer("name", addressLines); // Assert Assert.Equal(1, actual.AddressLines.Count()); addressLines.Add("line 2"); Assert.Equal(1, actual.AddressLines.Count()); }
public Invoice(int id, InvoiceCustomer customer, double amount) { this.id = id; this.customer = customer; this.amount = amount; }
public void SetCustomer(InvoiceCustomer customer) { this.customer = customer; }
public void Insert(IDbConnection connection, InvoiceCustomer invoiceCustomer, IDbTransaction transaction = null) { this.invoiceCustomerRepository.Insert(connection, invoiceCustomer); }