Example #1
0
        public ProductCreateResponse CreateProduct(ProductCreateRequest request)
        {
            var response         = new ProductCreateResponse();
            var validationErrors = _validation.CreateRequestValidation.Validate(request);
            var dbErrors         = new List <DatabaseErrors>();

            if (validationErrors.Count != 0)
            {
                response.ValidationErrors = validationErrors;
            }
            else
            {
                try
                {
                    var product = AddProductToDB(request);

                    if (product == null)
                    {
                        throw new NullReferenceException("Product not found");
                    }

                    response.Product = product;
                }
                catch (NullReferenceException)
                {
                    dbErrors.Add(DatabaseErrors.DB_CONNECTION_FAILED);
                }
                response.DBErrors = dbErrors;
            }

            return(response);
        }
Example #2
0
        public ProductCreateResponse Create(ProductCreateRequest request)
        {
            var response = new ProductCreateResponse();

            _facade.Create(request.Product);
            return(response);
        }
Example #3
0
        public async Task <ActionResult <Models.Product> > Create(ProductCreateResponse response)
        {
            var category = await _context
                           .Categories
                           .Where(c => c.Id == response.CategoryId)
                           .FirstOrDefaultAsync();

            if (category is null)
            {
                return(NotFound("Category not found"));
            }
            var product = new Models.Product
            {
                Name        = response.Name,
                Cost        = response.Cost,
                Description = response.Description,
                Categories  = new Models.Category[]
                {
                    category
                }
            };

            _context.Add(product);
            await _context.SaveChangesAsync();

            return(product);
        }