public ActionResult Save(ProductDetails productDetails) { if (!ModelState.IsValid) { var viewModel = new ProductFormViewModel { ProductDetails = productDetails, ProductNames = _context.ProductNames.ToList() }; return(View("ProductForm", viewModel)); } if (productDetails.Id == 0) { _context.ProductDetails.Add(productDetails); } else { var productDetailsInDb = _context.ProductDetails.Single(p => p.Id == productDetails.Id); productDetailsInDb.Name = productDetails.Name; productDetailsInDb.Price = productDetails.Price; productDetailsInDb.Quantity = productDetails.Quantity; productDetailsInDb.Location = productDetails.Location; productDetailsInDb.AisleNumber = productDetails.AisleNumber; productDetailsInDb.ProductNameId = productDetails.ProductNameId; } _context.SaveChanges(); return(RedirectToAction("Index", "ProductDetails")); }
public IActionResult Save(ProductFormViewModel viewModel) { // sample scenario: same name checking in the database if (viewModel.Title.ToLower() == "abc") { return(FormResult.CreateWarningResult("'Abc' is already exist in the database.")); } try { //... return(FormResult.CreateSuccessResult("Product saved.")); // Success form result with redirect //return FormResult.CreateSuccessResult("Product saved.", Url.Action("List", "Home")); // Success form result with redirect with delay time (15 seconds) // The message will be on the screen for 15 seconds. //return FormResult.CreateSuccessResult("Product saved.", Url.Action("List", "Home"), 15000); } catch { return(FormResult.CreateErrorResult("An error occurred!")); } // CreateSuccessResult Called this usage: //return Json(new FormResult(FormResultStatus.Success) //{ // Message = "Product saved." //}); }
// GET: Products/Details/5 public async Task <ActionResult> Details(int id) { var viewModel = new ProductFormViewModel(); var product = await _context.Product.Include(p => p.ProductType) .FirstOrDefaultAsync(p => p.ProductId == id); var user = await GetUserAsync(); viewModel.DateCreated = product.DateCreated; viewModel.Description = product.Description; viewModel.Title = product.Title; viewModel.Price = product.Price; viewModel.Quantity = product.Quantity; viewModel.UserId = product.UserId; viewModel.City = product.City; viewModel.ImagePath = product.ImagePath; viewModel.Active = product.Active; viewModel.ProductTypeId = product.ProductTypeId; viewModel.ProductType = product.ProductType; viewModel.ProductId = product.ProductId; return(View(viewModel)); }
public ActionResult Save(ProductFormViewModel viewModel) { if (!ModelState.IsValid) { return(View("FormView", viewModel)); } var catInDb = _context.Categories.SingleOrDefault(x => x.CategoryName == viewModel.Category.CategoryName); if (catInDb == null) { _context.Categories.Add(viewModel.Category); _context.SaveChanges(); viewModel.Product.CategoryID = _context.Categories.Single(x => x.CategoryName == viewModel.Category.CategoryName).ID; _context.Products.Add(viewModel.Product); } else { viewModel.Product.CategoryID = catInDb.ID; _context.Products.Add(viewModel.Product); } _context.SaveChanges(); return(RedirectToAction("Index")); }
public async Task <IActionResult> Edit(int id, Product product) { if (!ModelState.IsValid) { var categories = await _categoriesService.FindAllAsync(); var viewModel = new ProductFormViewModel { Product = product, Categories = categories }; return(View(viewModel)); } if (id != product.Id) { return(RedirectToAction(nameof(Error), new { message = "Ids não correspondem!" })); } try { await _productService.UpdateAsync(product); return(RedirectToAction(nameof(Index))); } catch (ApplicationException e) { return(RedirectToAction(nameof(Error), new { message = e.Message })); } }
public ActionResult Create(ProductFormViewModel newProduct) { if (!ModelState.IsValid) { return(View(newProduct)); } try { var product = Mapper.Map <ProductDto>(newProduct.Product); //Add to Database var productDto = Mapper.Map <ProductDto>(product); _productService.AddProduct(productDto); TempData["Notification"] = "Successfully!"; //Return new list in Index var list = _productService.ListProduct(); var viewModel = Mapper.Map <List <ProductViewModel> >(list) ?? new List <ProductViewModel>(); viewModel.Reverse(); return(View("Index", viewModel)); } catch (Exception e) { return(View("Index")); } }
public ActionResult Edit(int id) { var product = _context.products.SingleOrDefault(m => m.ProductIdentifier == id); if (product == null) { return(HttpNotFound()); } var viewModel = new ProductFormViewModel { ProductIdentifier = product.ProductIdentifier, ProductName = product.ProductName, BulkDensity = product.BulkDensity, AngleOfRepose = product.AngleofRepose, TLSPattern = product.TLSPattern, ParPercentageBlending = product.ParPercentageBlending }; if ((int)Session[Sessions.EditStatus] == (int)EnumEditStatus.EditEnabled) { ViewBag.Passed = true; } else { ViewBag.Passed = false; } return(View("ProductForm", viewModel)); }
public ActionResult Save(ProductFormViewModel viewModel) { if (ModelState.IsValid) { if (viewModel.Product.Id == 0) { _unitOfWork.Products.Add(viewModel.Product); } else { // Perhaps DTO and automapper, need to read! var productInDb = _unitOfWork.Products.Get(viewModel.Product.Id); productInDb.Name = viewModel.Product.Name; productInDb.DescriptionShort = viewModel.Product.DescriptionShort; productInDb.DescriptionLong = viewModel.Product.DescriptionLong; productInDb.Price = viewModel.Product.Price; productInDb.ImageUrl = viewModel.Product.ImageUrl; } _unitOfWork.Complete(); } else { return(View("ProductForm", viewModel)); } return(RedirectToAction("Index", "Products")); }
public IActionResult Edit(string id) { var currentCulture = Request.HttpContext.Features.Get <IRequestCultureFeature>().RequestCulture.Culture.Name; var product = productRepository.GetProductWithCategory(id); var photos = photoRepository.GetPhotos().ToList(); var categories = categoryRepository.GetCategories() .Where(c => c.CategoryId.EndsWith("_" + currentCulture)) .ToList(); if (product == null) { return(View("Error")); } var viewModel = new ProductFormViewModel { FormType = "Edit", ProductId = product.ProductId.Split("_")[0], Name = product.Name, Description = product.Description, Price = product.Price, PhotoId = product.PhotoId, Photos = photos, Categories = categories, ReturnUrl = Request.Path.Value }; return(View("ProductForm", viewModel)); }
public async Task <IActionResult> Insert(ProductFormViewModel viewModel) { if (viewModel.categoryList.Count == 0) { TempData["MSG_E"] = Message.MSG_E_005; ICollection <Category> list = await _categoryRepository.FindAllsAsync(_employeeLogin.GetEmployee().BusinessId); ViewBag.Category = list.Select(x => new SelectListItem(x.Name, x.Id.ToString())); return(View(nameof(Insert), viewModel)); } if (ModelState.IsValid) { viewModel.Product.InsertDate = DateTime.Now; viewModel.Product.RegisterEmployeeId = _employeeLogin.GetEmployee().BusinessId; _productRepository.Insert(viewModel.Product); foreach (var item in viewModel.categoryList) { _categoryProductRepository.Insert(new List <CategoryProduct> { new CategoryProduct { ProductId = viewModel.Product.Id, CategoryId = item } }); } TempData["MSG_S"] = Message.MSG_S_002; return(RedirectToAction(nameof(Index))); } ICollection <Category> listCat = await _categoryRepository.FindAllsAsync(_employeeLogin.GetEmployee().BusinessId); ViewBag.Category = listCat.Select(x => new SelectListItem(x.Name, x.Id.ToString())); return(View(viewModel)); }
public ActionResult Create(ProductFormViewModel viewModel) { if (!ModelState.IsValid) { viewModel.Categories = _unitOfWork.Categories.GetLastChildCategories(); return(View("ProductForm", viewModel)); } var product = Mapper.Map <ProductFormViewModel, Product>(viewModel); var tags = _unitOfWork.Tags.GetTags().Where(t => viewModel.TagIds.Contains(t.Id)).ToList(); foreach (var tag in tags) { product.Tags.Add(tag); } product.ThumbnailPath = viewModel.GetThumbnailPath(); product.LastUpdate = product.DateOfIssue = DateTime.Now; _unitOfWork.Products.Add(product); _unitOfWork.Complete(); viewModel.Id = product.Id; viewModel.SaveThumbnailOnServer(); product.ThumbnailPath = viewModel.GetThumbnailPath(); _unitOfWork.Complete(); return(RedirectToAction("Dashboard", "Admin")); }
public async Task <IActionResult> Update(ProductFormViewModel viewModel) { if (viewModel.categoryList.Count == 0) { TempData["MSG_E"] = Message.MSG_E_005; ICollection <Category> list = await _categoryRepository.FindAllsAsync(_employeeLogin.GetEmployee().BusinessId); ViewBag.Category = list.Select(x => new SelectListItem(x.Name, x.Id.ToString())); return(View(nameof(Details), viewModel)); } if (ModelState.IsValid) { viewModel.Product.UpdateDate = DateTime.Now; foreach (var item in viewModel.categoryList) { viewModel.Product.CategoryProduct.Add(new CategoryProduct { CategoryId = item, ProductId = viewModel.Product.Id }); } List <CategoryProduct> categoryProductsDB = _categoryProductRepository.FindAllsProdut(viewModel.Product.Id).ToList(); _categoryProductRepository.Remove(categoryProductsDB); _categoryProductRepository.Insert(viewModel.Product.CategoryProduct.ToList()); _productRepository.Update(viewModel.Product); TempData["MSG_S"] = Message.MSG_S_001; return(RedirectToAction(nameof(Details), new { Id = viewModel.Product.Id })); } ICollection <Category> listCat = await _categoryRepository.FindAllsAsync(_employeeLogin.GetEmployee().BusinessId); ViewBag.Category = listCat.Select(x => new SelectListItem(x.Name, x.Id.ToString())); return(View(nameof(Details), viewModel)); }
// GET: Admin/Product/Edit/5 public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var product = await _context.Products .Include(x => x.ProductCategories) .Include(x => x.OptionGroup) .Include(x => x.SizeGroup) .Include(x => x.SKUs) .ThenInclude(x => x.SKUPictures) .SingleOrDefaultAsync(m => m.Id == id); if (product == null) { return(NotFound()); } var productFormViewModel = new ProductFormViewModel(product); productFormViewModel.PrimaryCategoryList = new SelectList(await _context.Categories.Where(x => x.ParentCategoryId == null).ToListAsync(), "Id", "Name"); productFormViewModel.SecondaryCategoryList = new SelectList( await _context.Categories.Where(x => x.ParentCategoryId == productFormViewModel.PrimaryCategoryId).ToListAsync(), "Id", "Name"); productFormViewModel.TertiaryCategoryList = new SelectList( await _context.Categories.Where(x => x.ParentCategoryId == productFormViewModel.SecondaryCategoryId) .ToListAsync(), "Id", "Name"); ViewData["Header"] = "Products"; return(View(productFormViewModel)); }
public ActionResult Save(Product product) { if (!ModelState.IsValid) { var viewModel = new ProductFormViewModel(product) { Categories = _context.Categories.ToList() }; return(View("ProductForm", viewModel)); } if (product.Id == 0) { product.DateAdded = DateTime.Now; product.NumberAvailable = product.NumberInStock; _context.Products.Add(product); } else { var productInDb = _context.Products.Single(p => p.Id == product.Id); productInDb.Name = product.Name; productInDb.CategoryId = product.CategoryId; productInDb.NumberAvailable = (byte)(productInDb.NumberAvailable + (product.NumberInStock - productInDb.NumberInStock)); productInDb.NumberInStock = product.NumberInStock; } _context.SaveChanges(); return(RedirectToAction("Index", "Products")); }
public ActionResult Create(ProductFormViewModel viewmodel) { if (!ModelState.IsValid) { viewmodel.Categories = _context.Categories.ToList(); return(View("ProductForm", viewmodel)); } if (viewmodel.ImageUpload != null) { var path = Path.Combine(Server.MapPath("~/Images"), viewmodel.ImageUpload.FileName); viewmodel.ImageUpload.SaveAs(path); viewmodel.image = viewmodel.ImageUpload.FileName; } var product = new Product() { name = viewmodel.name, description = viewmodel.description, image = viewmodel.image, categoryid = viewmodel.category, price = viewmodel.price }; var cindb = _context.Categories.Single(c => c.id == product.categoryid); cindb.number_of_products++; _context.Products.Add(product); _context.SaveChanges(); return(RedirectToAction("Index", "Home")); }
public ActionResult Save(Product product) { if (!ModelState.IsValid) { var viewModel = new ProductFormViewModel(product) { Categories = _context.Categories.ToList() }; return(View("ProductForm", viewModel)); } if (product.Id == 0) { product.DateAdded = DateTime.Today; _context.Products.Add(product); } else { var productInDb = _context.Products.Single(p => p.Id == product.Id); productInDb.Name = product.Name; productInDb.CategoryId = product.CategoryId; productInDb.Details = product.Details; productInDb.Price = product.Price; productInDb.DateAdded = product.DateAdded; } _context.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit(int id) { // Get the product from database var product = db.Products .Include(p => p.Category) .SingleOrDefault(p => p.ID == id); // Check if the product is null if (product == null) { return(HttpNotFound()); } // Get the categories from the database var categories = db.Categories.ToList(); // Init the viewModel and fill it with the queries var viewModel = new ProductFormViewModel { Product = product, Categories = categories }; // Return the ProductForm with the viewModel if (User.IsInRole("CanManageProductsOrCategories")) { return(View("ProductForm", viewModel)); } return(Content("You dont have access")); }
public ActionResult Edit(ProductFormViewModel viewModel) { if (!ModelState.IsValid) { viewModel.Categories = _unitOfWork.Category.GetCategoriesList(); return(View(viewModel)); } var product = _unitOfWork.Product.GetProductById(viewModel.Id); product.Name = viewModel.Name; product.Description = viewModel.Description; product.CategoryId = viewModel.Category; product.StockAmount = viewModel.StockAmount; product.Price = viewModel.Price; product.Year = viewModel.Year; product.Dimensions = viewModel.Dimensions; product.Manufacturer = viewModel.Manufacturer; var uploads = viewModel.UploadedFiles; if (uploads != null) { foreach (var upload in uploads) { if (upload != null && upload.ContentType.Contains("image")) { var productPhoto = new File { FileName = Path.GetFileName(upload.FileName), ProductId = product.Id }; var path = Path.Combine(Server.MapPath("~/Content/Images/"), productPhoto.FileName); Resize(100, 100, upload.InputStream, Path.Combine(Server.MapPath("~/Content/Images/Thumbnails/" + productPhoto.FileName))); product.Files.Add(productPhoto); upload.SaveAs(path); } else if (upload != null && !upload.ContentType.Contains("image")) { viewModel.Categories = _unitOfWork.Product.GetCategories(); return(View(viewModel)); } } if (product.Files.Count != 0) { _unitOfWork.Complete(); return(RedirectToAction("Index")); } } _unitOfWork.Complete(); return(RedirectToAction("Index")); }
public IActionResult Save(Products product) { if (!ModelState.IsValid) { var viewModel = new ProductFormViewModel { Suppliers = _supplierRepository.GetSuppliers(), Categories = _categoryRepository.GetCategories() }; return(View("ProductForm", viewModel)); } if (product.ProductId == 0) { _repository.AddProduct(product); } else { var productInDb = _repository.GetProduct(product.ProductId); productInDb.ProductName = product.ProductName; productInDb.CategoryId = product.CategoryId; productInDb.QuantityPerUnit = product.QuantityPerUnit; productInDb.UnitPrice = product.UnitPrice; productInDb.SupplierId = product.SupplierId; } if (!_repository.Save()) { return(View("Error")); } return(RedirectToAction("Index", "Products")); }
public ActionResult Save(Product product, ProductFormViewModel viewModel) { if (!ModelState.IsValid) { viewModel.Categories = _context.Categories.ToList(); return(View("ProductForm2", viewModel)); } if (product.Id == 0) { product.Image = _set_product_image(product, viewModel.File); _context.Products.Add(product); _increase_number_of_products(product.CategoryId); } else { _SaveOfEdit(product, viewModel); } _context.SaveChanges(); return(RedirectToAction("Index", "Products")); }
public async Task ReturnViewWithDataWhenInvalidModelStateInProductForm() { //Arrange _sut.ModelState.AddModelError("x", "Test Error"); var productViewModel = new ProductFormViewModel { Name = "Test", BrandId = 2, ColorId = 2, Description = "test", SexId = 1, Price = "20.99", CategoryId = 1, PhotoPath = "XDDD" }; //Act IActionResult result = await _sut.SaveProduct(productViewModel); //Assert var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsType <ProductFormViewModel>(viewResult.Model); Assert.Equal(productViewModel.Name, model.Name); Assert.Equal(productViewModel.BrandId, model.BrandId); Assert.Equal(productViewModel.ColorId, model.ColorId); Assert.Equal(productViewModel.Description, model.Description); Assert.Equal(productViewModel.SexId, model.SexId); Assert.Equal(productViewModel.SexId, model.SexId); Assert.Equal(productViewModel.CategoryId, model.CategoryId); }
public async Task <ActionResult> Create(ProductFormViewModel productViewItem) { try { var user = await GetCurrentUserAsync(); var product = new Product { DateCreated = productViewItem.DateCreated, Description = productViewItem.Description, Title = productViewItem.Title, Price = productViewItem.Price, Quantity = productViewItem.Quantity, UserId = user.Id, City = productViewItem.City, Active = productViewItem.Active, ProductTypeId = productViewItem.ProductTypeId, localDelivery = productViewItem.localDelivery }; _context.Product.Add(product); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
public ActionResult Save(Product product) { if (!ModelState.IsValid) { var viewModel = new ProductFormViewModel { Product = product, ProductCategories = _context.ProductCategories.ToList() }; return(View("ProductForm", viewModel)); } if (product.Id == 0) { _context.Products.Add(product); } else { var productInDb = _context.Products.Single(m => m.Id == product.Id); productInDb.Name = product.Name; productInDb.ProductCategoryId = product.ProductCategoryId; productInDb.ProductionDate = product.ProductionDate; productInDb.ExpirationDate = product.ExpirationDate; productInDb.NrInStock = product.NrInStock; } _context.SaveChanges(); return(RedirectToAction("Index", "Products")); }
public ActionResult Edit(int id) { var product = _context.Products.FirstOrDefault(p => p.Id == id); if (product == null) { return(HttpNotFound()); } var viewModel = new ProductFormViewModel() { Id = id, Name = product.Name, Description = product.Description, PriceBefore = product.PriceBefore, Discount = product.Discount, Price = product.Price, Save = product.Save, Quantity = product.Quantity, Categories = _context.Categories.Where(c => c.IsActive == true).ToList(), Brands = _context.Brands.Where(c => c.IsActive == true).ToList(), Category = product.CategoryId, Brand = product.BrandId }; return(View("ProductForm", viewModel)); }
public ActionResult Save(Product product) { if (!ModelState.IsValid) { // Ako nije validan, vraćamo korisnika na formu. var viewModel = new ProductFormViewModel() { Product = _context.Products.SingleOrDefault(p => p.ID == product.ID) }; return(View("ProductForm", viewModel)); } if (product.ID == 0) { _context.Products.Add(product); } else { var productInDb = _context.Products.Single(p => p.ID == product.ID); productInDb.Name = product.Name; productInDb.Description = product.Description; productInDb.Producer = product.Producer; productInDb.Supplier = product.Supplier; productInDb.Price = product.Price; } _context.SaveChanges(); return(RedirectToAction("Index", "Products")); }
public IActionResult CreateProduct(ProductFormViewModel formProduct, int id) { Product product = new Product(); formProduct.IdCompany = id; var company = _companyService.FindCompanyById(id); product.Name = formProduct.Name; product.Company = company; product.TypeOfProduct = formProduct.TypeOfProduct; product.PublicationCode = formProduct.PublicationCode; string extension = ".svg"; product.PictureName = "no_image.png"; string pictureName = formProduct.PictureName; if (pictureName != null) { product.PictureName = pictureName + extension; } else { } _productService.AddProduct(product); return(RedirectToAction(nameof(Index))); }
/// <summary> /// Validate model. Check file for valid image /// Picture size must be lower than 500 Kb, width and height are equals 200px. /// </summary> /// <param name="model"></param> /// <returns></returns> private List <string> CheckProductModel(ProductFormViewModel model) { List <string> errors = new List <string>(); //Vlidate file of format if (model.ImageForm.ContentType.ToLower() != "image/jpeg" && model.ImageForm.ContentType.ToLower() != "image/jpg" && model.ImageForm.ContentType.ToLower() != "image/png") { errors.Add("Upload jpg or png picture"); return(errors); } int width = 0, height = 0; using (var image = Image.FromStream(model.ImageForm.OpenReadStream())) { width = image.Width; height = image.Height; } if (width != 200 & height != 200) { errors.Add("Picture width and hegth must are equals 200px"); } if (model.ImageForm.Length > 500 * 1024) { errors.Add("Picture size greate than 500кб"); } return(errors); }
public ActionResult Save(Product product) { if (!ModelState.IsValid) { var viewModel = new ProductFormViewModel(product) { Categories = ProductService._context.Categories.ToList(), Brands = ProductService._context.Brands.ToList() }; return(View("ProductForm", viewModel)); } if (product.Id == 0) { product.DateAdded = DateTime.Now; ProductService._context.Products.Add(product); } else { var productInDb = ProductService._context.Products.Single(m => m.Id == product.Id); productInDb.Id = product.Id; productInDb.Name = product.Name; productInDb.Quatity = product.Quatity; productInDb.NumberInStock = product.NumberInStock; productInDb.DateAdded = product.DateAdded; productInDb.DateToExpire = product.DateToExpire; productInDb.NumberAvailable = product.NumberAvailable; } ProductService._context.SaveChanges(); return(RedirectToAction("Index", "Product")); }
public async Task <ActionResult> Create(ProductFormViewModel productViewModel) { try { var user = await GetUserAsync(); var product = new Product() { DateCreated = DateTime.Now, Description = productViewModel.Description, Title = productViewModel.Title, Price = productViewModel.Price, Quantity = productViewModel.Quantity, UserId = user.Id, City = productViewModel.City, ImagePath = productViewModel.ImagePath, Active = productViewModel.Active, ProductTypeId = productViewModel.ProductTypeId }; _context.Product.Add(product); await _context.SaveChangesAsync(); var id = product.ProductId; return(RedirectToAction("Details", new { id = id })); } catch (Exception ex) { return(View()); } }
public ProductFormView(ProductFormViewModel viewModel) { DataContext = viewModel; InitializeComponent(); WindowStartupLocation = WindowStartupLocation.CenterScreen; Closed += OnWindowClosed; }