public List <string> Validate(EditProductDTO product, out List <string> invalidIds) { var validationMessage = new List <string>(); var validationId = new List <string>(); if (product.IsCreating && string.IsNullOrEmpty(product.Code)) { validationMessage.Add("Code is empty."); validationId.Add("Code"); } if (product.CategoryId == default(int)) { validationMessage.Add("Category is empty."); validationId.Add("Category"); } if (string.IsNullOrEmpty(product.Name)) { validationMessage.Add("Name is empty."); validationId.Add("Name"); } if (product.Price == default(decimal)) { validationMessage.Add("Price is empty."); validationId.Add("Price"); } invalidIds = validationId; return(validationMessage); }
public async Task EditProduct(int id, EditProductDTO editProductDTO) { var dbProduct = dbContext.Products .FirstOrDefault(x => x.Id == id); //Parameter tampering dbProduct.Price = editProductDTO.Price; await this.dbContext.SaveChangesAsync(); }
public ActionResult Edit(int id, EditProductDTO collection) { try { editProductCommand.Operation(collection); return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
public async Task <IActionResult> PutProduct(EditProductDTO productDTO) { var product = new Product(productDTO.Manufacturer, productDTO.Model, productDTO.Price, productDTO.StashQuantity, productDTO.Id); _context.Entry(product).State = EntityState.Modified; await _context.SaveChangesAsync(); return(NoContent()); }
public ActionResult Edit(EditProductDTO editProductDTO) { var product = _productRepo.FindById(editProductDTO.Id); var errorModel = new ProductViewModel { Product = product ?? _mapper.Map <EditProductDTO, ProductDTO>(editProductDTO), ProductSpecification = editProductDTO.ProductSpecification, CategoryId = editProductDTO.CategoryId, Categories = _categoryRepo.Categories.AsEnumerable(), StatusId = editProductDTO.StatusId, Statuses = _statusRepo.Statuses.AsEnumerable(), Images = editProductDTO.Images, IsFeatured = editProductDTO.IsFeatured, IsActive = editProductDTO.IsActive }; if (!ModelState.IsValid) { return(View(errorModel)); } if (product != null) { if (editProductDTO.Sku != product.Sku && _productRepo.FindBySku(editProductDTO.Sku) != null) { ModelState.AddModelError("", "SKU is used by another product."); return(View(errorModel)); } var productEdited = _mapper.Map(editProductDTO, product); productEdited.Images = new List <string>(); if (!string.IsNullOrWhiteSpace(editProductDTO.Images)) { var newImages = editProductDTO.Images.Split('@'); foreach (var img in newImages) { productEdited.Images.Add(img); } } _productRepo.Save(productEdited, editProductDTO.ProductSpecification); TempData["SaveSuccess"] = "Success"; return(RedirectToAction("index")); } ModelState.AddModelError("", "Product Id is invalid."); return(View(errorModel)); }
public static void CreateProduct(EditProductDTO dto) { SqlTransaction transaction = null; try { var con = new SqlConnection(GetConnection()); con.Open(); transaction = con.BeginTransaction(); var cmd = new SqlCommand { Transaction = transaction, Connection = con, CommandType = CommandType.Text, CommandText = @"INSERT INTO [SALuminousWeb].[dbo].[products] ([productCode] ,[description] ,[addedDate] ,[modifiedDate] ,[price] ,[categoriesID] ,[hidden])" + "VALUES (@code, @name, @addedDate, @modifiedDate, @price, @categoryID,0)" }; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@code", dto.Code); cmd.Parameters.AddWithValue("@name", dto.Name); cmd.Parameters.AddWithValue("@addedDate", DateTime.Now); cmd.Parameters.AddWithValue("@modifiedDate", DBNull.Value); cmd.Parameters.AddWithValue("@price", dto.Price); cmd.Parameters.AddWithValue("@categoryID", dto.CategoryId); cmd.ExecuteNonQuery(); transaction.Commit(); if (con.State != ConnectionState.Closed) { return; } con.Close(); } catch (SqlException ex) { transaction.Rollback(); var msg = "Insert errors"; msg += ex.Message; throw new Exception(msg); } }
public static void UpdateProduct(EditProductDTO product) { using (var connection = new SqlConnection(GetConnection())) { const string sql = @"UPDATE [dbo].[products] SET Description=@d, modifiedDate=@md, price=@p, categoriesID=@cid, hidden=@hide WHERE [productId] = @pid"; connection.Open(); var cmd = new SqlCommand(sql, connection); cmd.Parameters.Add(new SqlParameter("@d", SqlDbType.NVarChar)).Value = product.Name; cmd.Parameters.Add(new SqlParameter("@md", SqlDbType.DateTime)).Value = DateTime.Now; cmd.Parameters.Add(new SqlParameter("@p", SqlDbType.Money)).Value = product.Price; cmd.Parameters.Add(new SqlParameter("@cid", SqlDbType.Int)).Value = product.CategoryId; cmd.Parameters.Add(new SqlParameter("@hide", SqlDbType.Bit)).Value = product.Hidden; cmd.Parameters.Add(new SqlParameter("@pid", SqlDbType.Int)).Value = product.Id; cmd.ExecuteNonQuery(); } }
public ActionResult GetProductDetail(string productCode) { var product = ProductManagement.GetProduct(productCode); var productDetail = new EditProductDTO { Id = product.Id, Name = product.Name, CategoryId = product.CategoryId, Code = product.Code, Price = Convert.ToDecimal(product.Price), IsCreating = false, Hidden = product.Hidden }; return(Json(new { productDetail }, JsonRequestBehavior.AllowGet)); }
public ActionResult CreateUpdateProduct(EditProductDTO dto) { if (dto == null) { throw new NullReferenceException("DTO cannot be null"); } var validationIds = new List <string>(); var validationMessage = Validate(dto, out validationIds); if (!validationMessage.Any()) { if (dto.IsCreating) { ProductManagement.CreateProduct(dto); } else { ProductManagement.UpdateProduct(dto); } var products = ProductManagement.GetProductsIncludeHidden(); var categories = CategoryManagement.GetAllCategory(); var totalProductPage = (int)Math.Ceiling(((double)products.Count() / (double)pageSize)); return(Json(new { products = ApplyPaging(products, 1).Select(x => ConvertToProductDTO(x, categories)), passed = !validationMessage.Any(), validationIds, validationMessage = string.Join("</br>", validationMessage), totalProductPage })); } return(Json(new { passed = !validationMessage.Any(), validationIds, validationMessage = string.Join("</br>", validationMessage) })); }
public void Operation(EditProductDTO req) { var data = Context.Products.Find(req.Id); if (data == null || data.Deleted) { throw new DataNotFoundException(); } if (Context.Products.Any(p => p.ProductName == req.ProductName)) { throw new AlreadyExistsException(); } data.ProductName = req.ProductName; data.ProductDesc = req.ProductDesc; data.ProductPrice = req.ProductPrice; data.VendorId = req.VendorId; data.ManufacturerId = req.ManufacturerId; data.CategoryId = req.CategoryId; data.UpdatedAt = DateTime.Now; Context.SaveChanges(); }
public async Task <ActionResult <EditProductDTO> > Put(int id, EditProductDTO editProductDTO) { await service.EditProduct(id, editProductDTO); return(Ok(editProductDTO)); }
public IActionResult UpdateProduct(EditProductDTO product) { string username = this.HttpContext.Session.GetString(SessionConstant.UserNameSession); if (string.IsNullOrEmpty(username)) { return(RedirectToAction("Login", "Account")); } var suppliers = this._supplierRepository.GetSuppliers(); var categories = this._categoryRepository.GetCategories(); ViewData["Suppliers"] = suppliers; ViewData["Categories"] = categories; if (!ModelState.IsValid) { return(View("Edit", product)); } bool isExisting = this._productRepository.IsExistingProductCodeOrName( product.Serial, product.Name, product.Id ); if (isExisting) { ModelState.AddModelError("", "Mã sản phẩm hoặc tên sản phẩm đã tồn tại."); return(View("Edit", product)); } var productInDb = this._mapper.Map <Product>(product); bool uploadFileOk = false; string fileName = ""; if (product.PictureFile == null || product.PictureFile.FileName == "") { productInDb.Picture = "default.gif"; uploadFileOk = true; } else { fileName = WebUtility.HtmlEncode( Path.GetFileName(product.PictureFile.FileName)); if ((product.PictureFile.ContentType.ToLower() != "image/jpg") && (product.PictureFile.ContentType.ToLower() != "image/jpeg") && (product.PictureFile.ContentType.ToLower() != "image/pjpeg") && (product.PictureFile.ContentType.ToLower() != "image/gif") && (product.PictureFile.ContentType.ToLower() != "image/x-png") && (product.PictureFile.ContentType.ToLower() != "image/png")) { ModelState.AddModelError("", $"File upload ({fileName}) không phải file ảnh,."); return(View("Edit", product)); } if (product.PictureFile.Length == 0) { ModelState.AddModelError("", $"File upload ({fileName}) rỗng."); return(View("Edit", product)); } else if (product.PictureFile.Length > 1048576) { ModelState.AddModelError("", $"File upload ({fileName}) vượt quá 1 MB."); return(View("Edit", product)); } var filePath = Path.Combine(this._env.WebRootPath, "uploads", fileName); using (FileStream fs = new FileStream(filePath, FileMode.Create)) { product.PictureFile.CopyTo(fs); } uploadFileOk = true; } if (uploadFileOk == false) { TempData["Fail"] = "Có lỗi trong quá trình upload file. !"; return(View("Edit", product)); } if (string.IsNullOrEmpty(productInDb.Picture)) { productInDb.Picture = fileName; } productInDb.UpdatedBy = "admin"; productInDb.UpdatedDate = DateTime.Now; bool isSuccess = this._productRepository.UpdateProduct(productInDb); if (isSuccess) { TempData["Success"] = "Cập nhật dữ liệu thành công !"; return(RedirectToAction("Index")); } else { TempData["Fail"] = "Cập nhật dữ liệu thất bại !"; return(View("Edit", product)); } }