public async Task AddProductVariant_Should_Add_Variant_Correctly() { var product = _database.Products.FirstOrDefault(p => p.Name == "First Product" && p.Url == "first-product"); var eventBus = new Mock <IEventBus>().Object; var commands = new ProductCommands(_repository, eventBus); Guid productId = product.Id; string name = "first product variant"; string ean = "Ean001"; string sku = "Sku001"; Currency price = new Currency { Code = "EUR", Amount = 100 }; await commands.AddProductVariant(productId, name, ean, sku, price); var variantAdded = _database.Products.VariantsOf(productId).FirstOrDefault(v => v.EanCode == ean && v.Sku == sku); Assert.NotNull(variantAdded); Assert.Equal(name, variantAdded.Name); Assert.Equal(ean, variantAdded.EanCode); Assert.Equal(sku, variantAdded.Sku); Assert.Equal(price, variantAdded.Price); }
public MainViewModel() { try { productCommands = new ProductCommands(_connectionString); Products.AddRange(productCommands.GetList()); ProdCategoryCommands prodCategoryCommands = new ProdCategoryCommands(_connectionString); ProdCategories.AddRange(prodCategoryCommands.GetList()); LocationCommands locationCommands = new LocationCommands(_connectionString); Locations.AddRange(locationCommands.GetList()); LocCategoryCommands locCategoryCommands = new LocCategoryCommands(_connectionString); LocationCategories.AddRange(locCategoryCommands.GetList()); UnitCommands unitCommands = new UnitCommands(_connectionString); Units.AddRange(unitCommands.GetList()); UpdateAppStatus($"Database tables fetched.", Brushes.DarkGreen); } catch (Exception ex) { UpdateAppStatus($"Error on retrieving tables from SQL database:\n{ex.Message}", Brushes.Red); } GenerateTableProductsToDisplay(); InitializeAllPropertyFields(); Scheduler(); }
public ProductViewModel() { productOperationObj = new ProductOperations(); LoadData(); CurrentProduct = new Product(); saveProductCommand = new ProductCommands(Save); searchProductCommand = new ProductCommands(Search); updateProductCommand = new ProductCommands(Update); deleteProductCommand = new ProductCommands(Delete); updateTempProductCommand = new ProductCommands(UpdateTemp); openFileImageProductCommand = new ProductCommands(OpenFileDialog); }
public async Task Edit_Product_Information_Should_Change_Product_Values() { var product = _database.Products.FirstOrDefault(p => p.Name == "First Product" && p.Url == "first-product"); Guid productId = product.Id; string ean = "newEAN"; string sku = "newSKU"; string name = "First Product"; string url = "first-product"; Currency price = new Currency { Code = "EUR", Amount = 10 }; string description = "description"; int unitInStock = 2; bool isOnSale = true; DateTime?onSaleFrom = DateTime.Today; DateTime?onSaleTo = DateTime.Today.AddMonths(6); var eventBus = new Mock <IEventBus>().Object; var commands = new ProductCommands(_repository, eventBus); await commands.UpdateProductInfo(productId, ean, sku, name, url, price, description, unitInStock, isOnSale, onSaleFrom, onSaleTo); var updatedProduct = _database.Products.FirstOrDefault(p => p.Id == productId); Assert.Equal(ean, updatedProduct.EanCode); Assert.Equal(sku, updatedProduct.Sku); Assert.Equal(name, updatedProduct.Name); Assert.Equal(url, updatedProduct.Url); Assert.Equal(price, updatedProduct.Price); Assert.Equal(description, updatedProduct.Description); Assert.Equal(unitInStock, updatedProduct.UnitInStock); Assert.Equal(isOnSale, updatedProduct.IsOnSale); Assert.Equal(onSaleFrom, updatedProduct.OnSaleFrom); Assert.Equal(onSaleTo, updatedProduct.OnSaleTo); }
public async Task <IActionResult> Post([FromBody] string title) { var product = ProductCommands.createProduct(Guid.NewGuid(), title); return(Ok(product)); }