예제 #1
0
        public IHttpActionResult EditCategory([FromUri] string id, [FromBody] AddOrChangeCategoryModelBinder model)
        {
            Guid categoryId       = new Guid(id);
            var  exisitngCategory = this.context.Categories
                                    .FirstOrDefault(c => c.Id == categoryId);

            if (exisitngCategory == null)
            {
                return(this.BadRequest("No such category!"));
            }

            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var duplicateCategory = this.context.Categories
                                    .FirstOrDefault(c => c.Name == model.Name);

            if (duplicateCategory != null)
            {
                return(this.BadRequest("Duplicate category name!"));
            }

            exisitngCategory.Name = model.Name;
            this.context.Categories.AddOrUpdate(exisitngCategory);
            this.context.SaveChanges();

            return(this.Ok(exisitngCategory));
        }
예제 #2
0
        public IHttpActionResult PostCategory(AddOrChangeCategoryModelBinder model)
        {
            var exisitngCategory = this.context.Categories
                                   .FirstOrDefault(c => c.Name == model.Name);

            if (exisitngCategory != null)
            {
                return(this.BadRequest("Duplicate category name!"));
            }

            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var newCategory = new Category {
                Name = model.Name
            };

            this.context.Categories.Add(newCategory);
            this.context.SaveChanges();

            return(this.Ok(newCategory));
        }