public async Task <ApiResult <bool> > Update(ProductUpdateRequest request) { try { var product = await _context.Products.FindAsync(request.Id); if (product == null || product.isDelete) { return(new ApiErrorResult <bool>($"Không tìm thấy sản phẩm: {request.Id}")); } product.name = request.Name; product.slug = request.Slug; product.warranty = request.Warranty != null ? (int)request.Warranty : 0; product.brand_id = request.Brand_id; product.specifications = request.Specifications; product.short_desc = request.Short_desc; product.descriptions = request.Descriptions; product.isActive = request.IsActive; product.meta_descriptions = request.Meta_descriptions; product.meta_keywords = request.Meta_keywords; product.unit_price = decimal.Parse(request.Unit_price); product.promotion_price = !string.IsNullOrWhiteSpace(request.Promotion_price) ? decimal.Parse(request.Promotion_price) : 0; product.best_seller = request.Best_seller; product.featured = request.Featured; product.instock = request.Instock; product.brand_id = request.Brand_id; product.meta_tittle = request.Meta_tittle; product.code = request.Code; product.update_at = DateTime.Now; if (request.Image != null) { await _storageService.DeleteFileAsync(product.image); product.image = await this.SaveFile(request.Image); } if (request.More_images != null) { for (int i = 0; i < request.More_images.Count(); i++) { product.more_images += await this.SaveFile(request.More_images[i]) + ","; } } var pic = await _context.CategoryProducts.Where(x => x.product_id == request.Id).ToListAsync(); if (pic != null) { foreach (var cate in pic) { _context.CategoryProducts.Remove(cate); } } string[] cateIDs = request.CateID.Split(","); foreach (string cateID in cateIDs) { if (cateID != "") { var productInCategory = new TechShopSolution.Data.Entities.CategoryProduct { cate_id = int.Parse(cateID), product_id = request.Id }; _context.CategoryProducts.Add(productInCategory); } } await _context.SaveChangesAsync(); return(new ApiSuccessResult <bool>()); } catch { return(new ApiErrorResult <bool>("Cập nhật thất bại")); } }
public async Task <ApiResult <bool> > Create(ProductCreateRequest request) { var product = new TechShopSolution.Data.Entities.Product { name = request.Name, best_seller = request.Best_seller, brand_id = request.Brand_id, code = request.Code, create_at = DateTime.Now, descriptions = request.Descriptions, featured = request.Featured, instock = request.Instock, meta_descriptions = request.Meta_descriptions, meta_keywords = request.Meta_keywords, meta_tittle = request.Meta_tittle, promotion_price = !string.IsNullOrWhiteSpace(request.Promotion_price) ? decimal.Parse(request.Promotion_price) : 0, short_desc = request.Short_desc, slug = request.Slug, specifications = request.Specifications, isActive = request.IsActive, isDelete = false, unit_price = decimal.Parse(request.Unit_price), warranty = request.Warranty != null ? (int)request.Warranty : 0, }; if (request.Image != null) { product.image = await this.SaveFile(request.Image); } if (request.More_images != null) { if (request.More_images.Count == 1) { product.more_images = await this.SaveFile(request.More_images[0]); } else { for (int i = 0; i < request.More_images.Count(); i++) { product.more_images += await this.SaveFile(request.More_images[i]) + ","; } } } _context.Products.Add(product); await _context.SaveChangesAsync(); string[] cateIDs = request.CateID.Split(","); foreach (string cateID in cateIDs) { if (cateID != "") { var productInCategory = new TechShopSolution.Data.Entities.CategoryProduct { cate_id = int.Parse(cateID), product_id = product.id }; _context.CategoryProducts.Add(productInCategory); } } await _context.SaveChangesAsync(); return(new ApiSuccessResult <bool>()); }