Exemple #1
0
        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"));
            }
        }
Exemple #2
0
        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>());
        }