コード例 #1
0
 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 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));
        }
コード例 #3
0
 public void Insert(IDbConnection connection, InvoiceCustomer invoiceCustomer, IDbTransaction transaction = null)
 {
     connection.Execute(InvoiceCustomerQueries.Insert, new
     {
         invoiceId  = invoiceCustomer.InvoiceId.Content,
         customerId = invoiceCustomer.CustomerId.Content
     });
 }
コード例 #4
0
        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));
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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());
        }
コード例 #8
0
ファイル: Invoice.cs プロジェクト: nhan4599/OOP_Exercise_NTU
 public Invoice(int id, InvoiceCustomer customer, double amount)
 {
     this.id       = id;
     this.customer = customer;
     this.amount   = amount;
 }
コード例 #9
0
ファイル: Invoice.cs プロジェクト: nhan4599/OOP_Exercise_NTU
 public void SetCustomer(InvoiceCustomer customer)
 {
     this.customer = customer;
 }
コード例 #10
0
 public void Insert(IDbConnection connection, InvoiceCustomer invoiceCustomer, IDbTransaction transaction = null)
 {
     this.invoiceCustomerRepository.Insert(connection, invoiceCustomer);
 }