Exemplo n.º 1
0
        public ActionResult GetProductById(int id)
        {
            try
            {
                var db   = new ShowcaseDatabase.ShowcaseDatabase();
                var prod = db.Products.FirstOrDefault(p => p.Id == id);
                if (prod == null)
                {
                    return(_apiError.ProductNotFound);
                }

                var products = (from product in db.Products
                                join company in db.Companies on product.CompanyId equals company.Id
                                join category in db.Categories on product.CategoryId equals category.Id
                                where product.Id == id
                                select new
                {
                    product.Id,
                    product.ProductName,
                    company.CompanyName,
                    product.Price,
                    product.Description,
                    product.Count,
                    category.CategoryName,
                    Image = GetBase64(product.ImagePath)
                }).ToList();

                return(Ok(products.First()));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(_apiError.ServerError);
            }
        }
Exemplo n.º 2
0
        public ActionResult GetProducts()
        {
            try
            {
                var db       = new ShowcaseDatabase.ShowcaseDatabase();
                var count    = db.Products.Count();
                var products = (from product in db.Products
                                join company in db.Companies on product.CompanyId equals company.Id
                                join category in db.Categories on product.CategoryId equals category.Id
                                where Filter == null || Filter == category.CategoryName || Filter == company.CompanyName
                                select new
                {
                    product.Id,
                    product.ProductName,
                    company.CompanyName,
                    product.Price,
                    product.Description,
                    product.Count,
                    category.CategoryName,
                    image = GetBase64(product.ImagePath)
                }).Skip(Limit * Page).Take(Limit).ToList();

                return(Ok(new { totalCount = count, data = products }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(_apiError.ServerError);
            }
        }
Exemplo n.º 3
0
        public ActionResult <string> UpdateProduct(int id, [FromBody] ProductParam productParam)
        {
            try
            {
                var db      = new ShowcaseDatabase.ShowcaseDatabase();
                var product = db.Products.FirstOrDefault(p => p.Id == id);
                if (product == null)
                {
                    return(_apiError.ProductNotFound);
                }

                product.ProductName = productParam.ProductName ?? product.ProductName;
                product.Price       = productParam.Price <= 0 ? product.Price : productParam.Price;
                product.Description = productParam.Description ?? product.Description;
                product.Count       = productParam.Count < 0 ? product.Count : productParam.Count;
                product.CompanyId   = productParam.CompanyId <= 0 ? product.CompanyId : productParam.CompanyId;
                product.CategoryId  = productParam.CategoryId <= 0 ? product.CategoryId : productParam.CategoryId;

                db.SaveChanges();

                return(Ok(new { Message = "Продукт успешно обновлён" }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(_apiError.ServerError);
            }
        }
Exemplo n.º 4
0
        public ActionResult <string> AddProduct([FromBody] ProductParam product)
        {
            try
            {
                var db         = new ShowcaseDatabase.ShowcaseDatabase();
                var newProduct = new Product
                {
                    ProductName = product.ProductName,
                    Price       = product.Price,
                    Description = product.Description,
                    CompanyId   = product.CompanyId,
                    Count       = product.Count,
                    CategoryId  = product.CategoryId
                };
                db.Products.Add(newProduct);
                db.SaveChanges();

                return(Ok(new { newProduct.Id }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(_apiError.ServerError);
            }
        }
Exemplo n.º 5
0
        public ActionResult <string> GetCategoriesList()
        {
            try
            {
                var db     = new ShowcaseDatabase.ShowcaseDatabase();
                var result = (from category in db.Categories select new { category.Id, category.CategoryName }).ToList();

                return(Ok(result));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(_apiError.ServerError);
            }
        }
Exemplo n.º 6
0
        public async Task <ActionResult <string> > UploadProductImage(int id)
        {
            try
            {
                var file               = Request.Form.Files[0];
                var extensionFile      = file.ContentType.Split("/")[1];
                var acceptContentTypes = new List <string>
                {
                    EContentType.ImagePng, EContentType.ImageJpg, EContentType.ImageJpeg
                };
                var filePath =
                    $"{Config.GetSection("StaticPathImage").Value}/products/product_image_{id}.{extensionFile}";

                if (Request.Form.Files.Count != 1)
                {
                    return(_apiError.IncorrectCountImageFile);
                }
                if (!acceptContentTypes.Contains(file.ContentType))
                {
                    return(_apiError.IncorrectContentTypeFile);
                }

                using (var stream = new FileStream(filePath, FileMode.Create))
                    await file.CopyToAsync(stream);

                var db      = new ShowcaseDatabase.ShowcaseDatabase();
                var product = db.Products.FirstOrDefault(p => p.Id == id);
                if (product == null)
                {
                    return(_apiError.ProductNotFound);
                }

                product.ImagePath = filePath;
                db.SaveChanges();

                return(Ok(new { Message = "Картинка успешно обновлена" }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(_apiError.ServerError);
            }
        }
Exemplo n.º 7
0
        public ActionResult <string> DeleteProduct(int id)
        {
            try
            {
                var db      = new ShowcaseDatabase.ShowcaseDatabase();
                var product = db.Products.FirstOrDefault(p => p.Id == id);
                if (product == null)
                {
                    return(_apiError.ProductNotFound);
                }

                db.Products.Remove(product);
                db.SaveChanges();

                return(Ok(new { Message = "Продукт упешно удалён" }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(_apiError.ServerError);
            }
        }