コード例 #1
0
        public async Task AddOrUpdateCustomerShouldAddDesiredRecordToTheListAndHaveIdOneIfListIsEmpty()
        {
            // Arrange
            var initialCustomersDataList = new List <Customer>();
            var customerToInsert         = new CustomerViewModel("test", "test", "test", "test", "test");
            var expectedData             = new List <Customer>()
            {
                new Customer(1, "test", "test", "test", "test", "test")
            };
            var expectedId = 1;

            dataProviderMock.Setup(s => s.InitializeCustomers()).ReturnsAsync(initialCustomersDataList);
            customerRepository = new CustomerRepository(dataProviderMock.Object);

            // Act
            var actualUserId = await customerRepository.AddOrUpdateCustomer(customerToInsert);

            var actualData = customerRepository.GetAllCustomers().Result.ToList();

            // Assert
            Assert.That(actualData.Count, Is.EqualTo(expectedData.Count));
            Assert.That(actualUserId, Is.EqualTo(expectedId));
            for (int i = 0; i < actualData.Count(); i++)
            {
                Assert.That(actualData[i].Id, Is.EqualTo(expectedData[i].Id));
                Assert.That(actualData[i].Name, Is.EqualTo(expectedData[i].Name));
                Assert.That(actualData[i].Email, Is.EqualTo(expectedData[i].Email));
                Assert.That(actualData[i].IBAN, Is.EqualTo(expectedData[i].IBAN));
                Assert.That(actualData[i].Phone, Is.EqualTo(expectedData[i].Phone));
                Assert.That(actualData[i].Suffix, Is.EqualTo(expectedData[i].Suffix));
            }
        }
コード例 #2
0
        public async Task AddOrUpdateCustomerShouldUpdateItemInList()
        {
            // Arrange
            var initialCustomersDataList = new List <Customer>()
            {
                new Customer(1, "test1", "test1", "test1", "test1", "test1"),
                new Customer(2, "test2", "test2", "test2", "testEmail", "test2"),
                new Customer(3, "test3", "test3", "test3", "test3", "test3")
            };
            var customerToInsert = new CustomerViewModel("test4", "test4", "test4", "testEmail", "test4");
            var expectedData     = new List <Customer>()
            {
                new Customer(1, "test1", "test1", "test1", "test1", "test1"),
                new Customer(2, "test4", "test4", "test4", "testEmail", "test4"),
                new Customer(3, "test3", "test3", "test3", "test3", "test3")
            };
            var expectedId = 2;

            dataProviderMock.Setup(s => s.InitializeCustomers()).ReturnsAsync(initialCustomersDataList);
            customerRepository = new CustomerRepository(dataProviderMock.Object);

            // Act
            var actualUserId = await customerRepository.AddOrUpdateCustomer(customerToInsert);

            var actualData = customerRepository.GetAllCustomers().Result.ToList();

            // Assert
            Assert.That(actualData.Count, Is.EqualTo(expectedData.Count));
            Assert.That(actualUserId, Is.EqualTo(expectedId));
            for (int i = 0; i < actualData.Count(); i++)
            {
                Assert.That(actualData[i].Id, Is.EqualTo(expectedData[i].Id));
                Assert.That(actualData[i].Name, Is.EqualTo(expectedData[i].Name));
                Assert.That(actualData[i].Email, Is.EqualTo(expectedData[i].Email));
                Assert.That(actualData[i].IBAN, Is.EqualTo(expectedData[i].IBAN));
                Assert.That(actualData[i].Phone, Is.EqualTo(expectedData[i].Phone));
                Assert.That(actualData[i].Suffix, Is.EqualTo(expectedData[i].Suffix));
            }
        }
コード例 #3
0
        public JsonResult CompleteSale(SaleViewModel model)
        {
            bool           success = true;
            BeSpokeContext context = new BeSpokeContext();

            using (var dbContextTransaction = context.Database.BeginTransaction())
            {
                try
                {
                    // Add Customer
                    var custRepo = new CustomerRepository();
                    custRepo.AddOrUpdateCustomer(model.Customer, model.SaleDate);

                    //Create Sale
                    Sale sale = new Sale();
                    sale.CustomerId    = model.Customer.CustomerId;
                    sale.ProductId     = model.Product.ProductId;
                    sale.SalesPersonId = model.SalesPersonId;
                    sale.Date          = model.SaleDate;
                    var salesRepo = new SalesRepository();
                    salesRepo.CreateSale(sale);

                    //Update Product Count
                    var productRepo = new ProductRepository();
                    productRepo.UpdateQtyOnHand(model.Product.ProductId);
                    dbContextTransaction.Commit();
                }
                catch (Exception e)
                {
                    success = false;
                    dbContextTransaction.Rollback();
                }
            }
            return(new JsonResult {
                Data = success
            });
        }