コード例 #1
0
        public IHttpResponse Create(CreateProductViewModel model)
        {
            if (model.ProductType == null)
            {
                return(BadRequestErrorWithView("You must select a product type."));
            }
            if (model.Price == default(decimal) || model.Price < 0)
            {
                return(BadRequestErrorWithView("You must enter a valid number larger than 0."));
            }
            if (model.Name.Trim().Length < 3 || model.Description.Trim().Length < 3 || model.Name.Contains(" "))
            {
                return(BadRequestErrorWithView("Invalid product information."));
            }

            var user = this.DbContext.Users.First(u => u.Username == this.User.Username);

            Product product = model.To <Product>();

            //Use Enum.TryParse to check if the enum exists.

            object type;

            Enum.TryParse(typeof(ProductType), model.ProductType, out type);
            if (type == null)
            {
                return(this.BadRequestErrorWithView("Invalid product type."));
            }

            product.Type = (ProductType)type;

            if (this.DbContext.Products.Any(p => p.Name == product.Name))
            {
                return(this.BadRequestErrorWithView("Product already exists!"));
            }

            this.DbContext.Products.Add(product);
            this.DbContext.SaveChanges();

            return(this.Redirect($"/products/details?id={product.Id}"));
        }