// GET: AdminProduct/Create public IActionResult Create() { ViewData["CategoryID"] = new SelectList(_context.Category, "CategoryID", "CategoryName"); ViewData["ProductStatusID"] = new SelectList(_context.Set <ProductStatus>(), "ProductStatusID", "ProductStatusName"); //ViewData["RewardPoolID"] = new SelectList(_context.Set<RewardPool>(), "RewardPoolID", "RewardPoolID"); ViewData["ProductServingTypeID"] = new SelectList(_context.Set <ProductServingType>(), "ProductServingTypeID", "ServingType"); AdminProductCreateViewModel model = new AdminProductCreateViewModel(); var date = DateTime.Now; model.SaleStartDateTime = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, 0); model.SaleEndDateTime = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, 0); return(View(model)); }
public async void Test_ProductAction() { #region Arrange // todo: define the required assets var options = new DbContextOptionsBuilder <AppDbContext>() .UseInMemoryDatabase(databaseName: "HomeSquareMockDb") .Options; //AppDbContext context = new AppDbContext(options); MockData mockData = new MockData(); using (AppDbContext context = new AppDbContext(options)) { mockData.CreateMockProductStatus(context); mockData.CreateMockProductServingType(context); mockData.CreateMockCategory(context); IFormFile file = new FormFile(new MemoryStream(Encoding.UTF8.GetBytes("This is a dummy file")), 0, 0, "Data", "dummy.jpg"); AdminProductCreateViewModel model = new AdminProductCreateViewModel() { ProductPrice = 15.33333, ProductStock = 5, ProductName = "Coke123", ProductDiscount = (float?)0.5, ProductInformation = "Coke 1.5 L Soft Drink", Description = "Coke 1.5 L Soft Drink", ProductServingContent = 0, ProductServingTypeID = context.ProductServingType.FirstOrDefault().ProductServingTypeID, ProductStatusID = context.ProductStatus.Where(ps => ps.ProductStatusName == "Sale").FirstOrDefault().ProductStatusID, CategoryID = context.Category.Where(c => c.CategoryName == "Drink").FirstOrDefault().CategoryID, Image = file, SaleStartDateTime = DateTime.Now, SaleEndDateTime = DateTime.Now.AddDays(2) }; #endregion #region Act // todo: invoke the test //-------------------------------------------Test Creation of Product From Admin----------------------------------------- var adminProductController = new AdminProductController(context, null); await adminProductController.Create(model); var creationResult = context.Product.Where(p => p.ProductName == "Coke123").FirstOrDefault() == null ? false : true; Assert.True(creationResult); #endregion } }
public async Task <IActionResult> Create( [Bind("ProductID,ProductPrice,ProductStock,ProductName,ProductDiscount," + "ProductInformation,Description,ProductServingContent,ProductServingTypeID," + "ProductStatusID,CategoryID,Image,SaleStartDateTime,SaleEndDateTime")] AdminProductCreateViewModel model) { //Check if product with same name already existed on DB if (model != null && model.ProductName != null) { bool parseResult; bool.TryParse(((JsonResult)IsProductExist(model.ProductName)).Value.ToString(), out parseResult); if (parseResult != true) { ModelState.AddModelError(string.Empty, "Product Name Is Not Unique"); } } if (model.SaleStartDateTime > model.SaleEndDateTime) { ModelState.AddModelError(string.Empty, "Sale Start Date Should be Before Than the End Date"); } if (ModelState.IsValid) { string uniqueFileName = ProcessUploadedFile(model.Image); Product product = new Product() { ProductName = model.ProductName, ProductPrice = model.ProductPrice, ProductStock = model.ProductStock == null ? 0 : model.ProductStock, ProductAddedDate = DateTime.Now, ProductUpdateDate = DateTime.Now, ProductDiscount = model.ProductDiscount == null ? 0 : model.ProductDiscount, SaleStartDateTime = model.SaleStartDateTime, SaleEndDateTime = model.SaleEndDateTime, ImageUrl = uniqueFileName, ProductInformation = model.ProductInformation, Description = model.Description, ProductServingContent = model.ProductServingContent, ProductServingTypeID = model.ProductServingTypeID, ProductStatusID = model.ProductStatusID, CategoryID = model.CategoryID }; product.PriceAfterDiscount = (double)(product.ProductPrice - (product.ProductPrice * (model.ProductDiscount == null ? 0 : model.ProductDiscount))); _context.Add(product); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["CategoryID"] = new SelectList(_context.Category, "CategoryID", "CategoryName", model.CategoryID); ViewData["ProductStatusID"] = new SelectList(_context.Set <ProductStatus>(), "ProductStatusID", "ProductStatusName", model.ProductStatusID); //ViewData["RewardPoolID"] = new SelectList(_context.Set<RewardPool>(), "RewardPoolID", "RewardPoolID", model.RewardPoolID); ViewData["ProductServingTypeID"] = new SelectList(_context.Set <ProductServingType>(), "ProductServingTypeID", "ServingType", model.ProductServingTypeID); return(View(model)); }