public async Task ChangeAvailability_ChangesProductAvailabilityCorectly() { MapperInitializer.InitializeMapper(); var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var productRepository = new EfDeletableEntityRepository <Product>(context); var productsTestSeeder = new ProductTestSeeder(); var productsService = this.GetProductsService(productRepository, context); await productsTestSeeder.SeedProducts(context); var isNotAvailableModel = new ProductSingleViewModel() { Id = "2" }; var nonExistantId = new ProductSingleViewModel() { Id = "asd" }; var shouldBeTrue = await productsService.ChangeAvailability(isNotAvailableModel); Assert.True(shouldBeTrue.Available); await Assert.ThrowsAsync <ArgumentNullException>(async() => { await productsService.ChangeAvailability(nonExistantId); }); }
public void AddProductToCustomer(ProductSingleViewModel model, int customerID) { CustomerProduct cp = new CustomerProduct(); cp.CustomerID = customerID; cp.ProductID = model.ProductID; cp.CalculationDetails = false; customerProductRepository.Create(cp); }
public List <ProductSingleViewModel> GetProductAvailables(int id) { ProductSingleViewModel prodVM = null; List <ProductSingleViewModel> result = new List <ProductSingleViewModel>(); List <Product> prodList = saleModalityProductRepository.FindProductAvailableBySaleModality(id); foreach (Product item in prodList) { prodVM = new ProductSingleViewModel(item); result.Add(prodVM); prodVM = null; } prodList = null; return(result); }
public async Task <ProductSingleViewModel> ChangeAvailability(ProductSingleViewModel productSingleViewModel) { var product = await this.productRepository.All().SingleOrDefaultAsync(x => x.Id == productSingleViewModel.Id); if (product == null) { throw new ArgumentNullException("Product was null"); } var availabilityState = product.Available == true ? false : true; product.Available = availabilityState; product.To(productSingleViewModel); var result = await this.productRepository.SaveChangesAsync(); return(productSingleViewModel); }
public async Task <ActionResult <ProductSingleViewModel> > ChangeAvailability(ProductSingleViewModel productSingleViewModel) { var model = await this.productService.ChangeAvailability(productSingleViewModel); return(model); }