public void AddProduct_Redirects_ValidProductViewModel() { //arrange var addEditProductViewModel = new AddEditProductViewModel(); var mockProductRepository = RepositoryMocks.GetProductRepository(); var mockOrderRepository = RepositoryMocks.GetOrderRepository(); var mockOrderDetailRepository = RepositoryMocks.GetOrderDetailRepository(); var product = mockProductRepository.Object.GetProductById(1); addEditProductViewModel.Id = product.Id; addEditProductViewModel.Name = product.Name; addEditProductViewModel.Category = product.Category; addEditProductViewModel.Price = product.Price; addEditProductViewModel.ImageUrl = product.ImageUrl; addEditProductViewModel.Description = product.Description; var employeeController = new EmployeeController(mockProductRepository.Object, mockOrderRepository.Object, mockOrderDetailRepository.Object); //act var result = employeeController.AddProduct(addEditProductViewModel); //assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("ProductManagement", redirectToActionResult.ActionName); }
public ActionResult AddEditProduct(Int32?ProductId) { var model = new AddEditProductViewModel(); model.Fill(CargarDatosContext(), ProductId); return(View(model)); }
public MainWindowViewModel() { _productListViewModel = ContainerHelper.Container.Resolve <ProductListViewModel>(); _addEditViewModel = ContainerHelper.Container.Resolve <AddEditProductViewModel>(); NavCommand = new RelayCommand <string>(OnNav); _productListViewModel.AddProductRequested += NavToAddProduct; _productListViewModel.EditProductRequested += NavToEditProduct; _addEditViewModel.Done += NavToProductList; }
public AddEditProductPage(Product prod = null, bool delete = false) { InitializeComponent(); _addProductViewModel = new AddEditProductViewModel(Navigation, prod, delete); BindingContext = _addProductViewModel; if (delete) { Title = "Delete Product"; SubmitButton.Text = "Delete Product"; } }
public MainWindowViewModel() { _ProductListViewModel = SportsStoreContainer.Container.Resolve <ProductListViewModel>(); _ProductListViewModel.EditProductRequested += NavigateToEditProduct; _AddEditProductViewModel = SportsStoreContainer.Container.Resolve <AddEditProductViewModel>(); _AddEditProductViewModel.CancelCommandRequest += OnNavigate; _AddEditProductViewModel.SaveCommandRequest += OnNavigate; NavigateCommand = new RelayCommand <string>(OnNavigate); AddNewProductCommand = new RelayCommand <string>(OnAddNewProduct); }
public void OnGet(int id) { var product = _context.Products.Include(p => p.Item) .Where(p => p.Id == id) .Select(s => new AddEditProductViewModel() { Id = s.Id, Name = s.Name, Description = s.Description, QuantityInStock = s.Item.QuantityInStock, Price = s.Item.Price }).FirstOrDefault(); Product = product; }
public IActionResult EditProduct(int id) { var product = _productRepository.GetProductById(id); if (product == null) { return(RedirectToAction("ProductManagement", _productRepository.Products)); } var vm = new AddEditProductViewModel() { Id = product.Id, Name = product.Name, Category = product.Category, Price = product.Price, ImageUrl = product.ImageUrl, Description = product.Description }; return(View(vm)); }
public async System.Threading.Tasks.Task <ActionResult> AddProduct(AddEditProductViewModel model, FormCollection fc) { try { var postResult = ConstantHelpers.PostUrlAsync(Baseurl, "SAV/products", model).Result; if (postResult.Message.Equals("Success")) { return(RedirectToAction("ListProduct", "Product")); } return(View(model)); } catch (Exception ex) { TryUpdateModel(model); return(View(model)); } }
public IActionResult AddProduct(AddEditProductViewModel addProductViewModel) { if (!ModelState.IsValid) { return(View(addProductViewModel)); } var product = new Product() { Name = addProductViewModel.Name, Category = addProductViewModel.Category, Price = addProductViewModel.Price, ImageUrl = addProductViewModel.ImageUrl, Description = addProductViewModel.Description }; _productRepository.AddProduct(product); return(RedirectToAction("ProductManagement")); }
public async Task <IActionResult> AddEditProduct(int id) { AddEditProductViewModel model = new AddEditProductViewModel(); model.CategoryList = await _context.Categories.Select(c => new SelectListItem { Text = c.Title, Value = c.Id.ToString() }).ToListAsync(); model.UnitList = await _context.Units.Select(u => new SelectListItem { Text = u.Title, Value = u.Id.ToString() }).ToListAsync(); if (id != 0) { using (_serviceProvider.GetRequiredService <ApplicationDbContext>()) { Product product = await _context.Products.Where(p => p.Id == id).SingleOrDefaultAsync(); if (product != null) { model.Id = product.Id; model.Name = product.Name; model.OrderPoint = product.OrderPoint; model.Price = product.Price; model.Code = product.Code; model.Inventory = product.Inventory; model.Issenoble = product.Issenoble; model.IdUnit = product.IdUnit; model.IdCategory = product.IdCategory; model.ImageName = product.ImageName; } } } return(PartialView("AddEditProduct", model)); }
public IActionResult EditProduct(AddEditProductViewModel addProductViewModel) { var product = _productRepository.GetProductById(addProductViewModel.Id); if (product != null) { product.Name = addProductViewModel.Name; product.Category = addProductViewModel.Category; product.Price = addProductViewModel.Price; product.ImageUrl = addProductViewModel.ImageUrl; product.Description = addProductViewModel.Description; if (!ModelState.IsValid) { return(View(addProductViewModel)); } _productRepository.UpdateProduct(product); return(RedirectToAction("ProductManagement", _productRepository.Products)); } return(RedirectToAction("ProductManagement", _productRepository.Products)); }
public AddEditProduct(Product product = null) { InitializeComponent(); DataContext = new AddEditProductViewModel(product); }
public async System.Threading.Tasks.Task <ActionResult> AddProduct() { var vm = new AddEditProductViewModel(); return(View(vm)); }
public ActionResult AddEditProduct(AddEditProductViewModel model) { try { if (!ModelState.IsValid) { model.Fill(CargarDatosContext(), model.ProductId); TryUpdateModel(model); PostMessage(MessageType.Error); return(View(model)); } Product product = null; if (model.ProductId.HasValue) { product = context.Product.FirstOrDefault(x => x.ProductId == model.ProductId); } else { product = new Product(); product.State = ConstantHelpers.ESTADO.ACTIVO; context.Product.Add(product); } product.SubFamilyId = model.SubFamilyId.Value; product.TypeExistenceId = model.TypeExistenceId; product.MeasureUnitPrimaryId = model.MeasureUnitPrimaryId; product.MeasureUnitSecondaryId = model.MeasureUnitSecondaryId; product.InternalCode = model.InternalCode; product.IsActive = model.IsActive; product.Barcode = model.Barcode; product.Color = model.Color; product.InvoiceDescription = model.InvoiceDescription; product.LocalDescription = model.LocalDescription; product.DesignName = model.DesignName; product.DesignNumber = model.DesignNumber; product.LotNumberPurchase = model.LotNumberPurchase; product.TaxPercentageAdvalorenId = model.TaxPercentageAdvalorenId; product.TaxPercentageAffectionIGVId = model.TaxPercentageAffectionIGVId; product.TaxPercentagePerceptionId = model.TaxPercentagePerceptionId; product.TaxPercentageDetractionId = model.TaxPercentageDetractionId; product.IsSale = model.IsSale; product.IsPurchase = model.IsPurchase; product.OtherMeasureUnit = model.OtherMeasureUnit; product.ConversionFactor = model.ConversionFactor; product.MinimumStock = model.MinimumStock; product.MinimumLot = model.MinimumLot; context.SaveChanges(); PostMessage(MessageType.Success); return(RedirectToAction("ListProduct", "Master")); } catch (Exception ex) { PostMessage(MessageType.Error); model.Fill(CargarDatosContext(), model.ProductId); return(View(model)); } }
public async Task <IActionResult> AddEditProduct(AddEditProductViewModel model, string ImgName, int id, IEnumerable <IFormFile> files) { if (ModelState.IsValid) { //upload audio var uploads = Path.Combine(_appEnvironment.WebRootPath, "upload\\normalimage\\"); foreach (var file in files) { if (file != null && file.Length > 0) { var filename = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(file.FileName); using (var fs = new FileStream(Path.Combine(uploads, filename), FileMode.Create)) { await file.CopyToAsync(fs); model.ImageName = filename; } InsertShowImage.ImageResizer img = new InsertShowImage.ImageResizer(); img.Resize(uploads + filename, _appEnvironment.WebRootPath + "\\upload\\thumbnailimage\\" + filename); } } //upload audio if (id == 0) { if (model.ImageName == null) { model.ImageName = "defaultpic.png"; } using (var db = _serviceProvider.GetRequiredService <ApplicationDbContext>()) { Product productModel = AutoMapper.Mapper.Map <AddEditProductViewModel, Product>(model); db.Products.Add(productModel); await db.SaveChangesAsync(); } TempData["Notif"] = Notification.ShowNotif(MessageType.Add, type: ToastType.green); //return PartialView("_Succefullyresponse", redirecturl); //return Json(new { status = "success", message = "محصول با موفقیت ایجاد شد" }); return(RedirectToAction("Index")); } else { if (model.ImageName == null) { model.ImageName = ImgName; } using (var db = _serviceProvider.GetRequiredService <ApplicationDbContext>()) { Product productModel = AutoMapper.Mapper.Map <AddEditProductViewModel, Product>(model); db.Products.Update(productModel); await db.SaveChangesAsync(); } TempData["Notif"] = Notification.ShowNotif(MessageType.Edit, type: ToastType.blue); //return Json(new { status = "success", message = "اطلاعات محصول با موفقیت ویرایش شد" }); //return PartialView("_Succefullyresponse", redirecturl); return(RedirectToAction("Index")); } } if (id == 0) { TempData["Notif"] = Notification.ShowNotif(MessageType.addError, type: ToastType.yellow); } else { TempData["Notif"] = Notification.ShowNotif(MessageType.editError, type: ToastType.yellow); } model.CategoryList = await _context.Categories.Select(c => new SelectListItem() { Text = c.Title, Value = c.Id.ToString() }).ToListAsync(); model.UnitList = await _context.Units.Select(u => new SelectListItem() { Text = u.Title, Value = u.Id.ToString() }).ToListAsync(); return(PartialView("AddEditProduct", model)); }