public async Task <IActionResult> Get()
        {
            BaseAPIModel <ProductResult> response = new BaseAPIModel <ProductResult>();

            response.status  = false;
            response.request = "Product";
            try
            {
                response.data = _context.Products.Include(o => o.productCategory).Where(o => o.IsActive == true).Select(i => new ProductResult
                {
                    ID          = i.ID,
                    Name        = i.Name,
                    Description = i.Description,
                    Category    = i.productCategory.Name,
                    CategoryID  = i.CategoryID
                }).ToList();
                response.status = true;

                return(Ok(response));
            }
            catch (Exception ex)
            {
                response.error = ex.InnerException.Message;
                return(BadRequest(response));
            }
        }
        public async Task <IActionResult> Post([FromBody] Model.RequestModel.Product product)
        {
            BaseAPIModel <Product> response = new BaseAPIModel <Product>();

            response.status  = false;
            response.request = "Add Product";

            try
            {
                Product productDetail = new Product
                {
                    Name         = product.Name,
                    Description  = product.Description,
                    IsActive     = true,
                    CategoryID   = product.CategoryID,
                    RegistedDate = DateTime.Now
                };

                await _context.Products.AddAsync(productDetail);

                await _context.SaveChangesAsync();

                response.status = true;
                return(Ok(response));
            }
            catch (Exception ex)
            {
                response.error = ex.InnerException.Message;
                return(BadRequest(response));
            }
        }
        public async Task <IActionResult> Delete([FromBody] int id)
        {
            BaseAPIModel <Product> response = new BaseAPIModel <Product>();

            response.status  = false;
            response.request = "Delete Product";

            try
            {
                Product product = new Product
                {
                    ID = id
                };

                _context.Products.Remove(product);
                await _context.SaveChangesAsync();

                response.status = true;
                return(Ok(response));
            }
            catch (Exception ex)
            {
                response.error = ex.InnerException.Message;
                return(BadRequest(response));
            }
        }
        public async Task <IActionResult> Update([FromBody] Model.RequestModel.ProductUpdate data)
        {
            BaseAPIModel <Product> response = new BaseAPIModel <Product>();

            response.status  = false;
            response.request = "Update Product";

            try
            {
                Product product = new Product
                {
                    ID           = data.ID,
                    Name         = data.Name,
                    Description  = data.Description,
                    CategoryID   = data.CategoryID,
                    IsActive     = true,
                    RegistedDate = DateTime.Now
                };

                _context.Products.Update(product);
                await _context.SaveChangesAsync();

                response.status = true;
                return(Ok(response));
            }
            catch (Exception ex)
            {
                response.error = ex.InnerException.Message;
                return(BadRequest(response));
            }
        }
Beispiel #5
0
        public async Task <IActionResult> Post([FromBody] Category data)
        {
            BaseAPIModel <ProductCategory> response = new BaseAPIModel <ProductCategory>();

            response.status  = false;
            response.request = "Add Product Categories";

            try
            {
                ProductCategory category = new ProductCategory
                {
                    Name         = data.Name,
                    Description  = data.Description,
                    IsActive     = true,
                    RegistedDate = DateTime.Now
                };

                await _context.ProductCategories.AddAsync(category);

                await _context.SaveChangesAsync();

                response.status = true;
                return(Ok(response));
            }
            catch (Exception ex)
            {
                response.error = ex.InnerException.Message;
                return(BadRequest(response));
            }
        }
Beispiel #6
0
        public async Task <IActionResult> Delete([FromBody] int id)
        {
            BaseAPIModel <ProductCategory> response = new BaseAPIModel <ProductCategory>();

            response.status  = false;
            response.request = "Add Product Categories";

            try
            {
                int productCount = _context.Products.Where(o => o.CategoryID == id).Count();

                if (productCount > 0)
                {
                    response.error = "Category cannot be deleted. It references from products.";
                    return(Conflict(response));
                }

                ProductCategory productCategory = new ProductCategory
                {
                    ID = id
                };


                _context.ProductCategories.Remove(productCategory);
                await _context.SaveChangesAsync();

                response.status = true;
                return(Ok(response));
            }catch (Exception ex)
            {
                response.error = ex.InnerException.Message;
                return(BadRequest(response));
            }
        }
Beispiel #7
0
        public async Task <IActionResult> Get()
        {
            BaseAPIModel <ProductCategory> response = new BaseAPIModel <ProductCategory>();

            response.status  = false;
            response.request = "Product Categories";
            try
            {
                response.data   = _context.ProductCategories.Where(o => o.IsActive == true).ToList();
                response.status = true;

                return(Ok(response));
            }catch (Exception ex)
            {
                response.error = ex.InnerException.Message;
                return(BadRequest(response));
            }
        }