public HttpResponseMessage PostCreateItem( ItemModel model, [ValueProvider(typeof(HeaderValueProviderFactory<string>))] string sessionKey) { var responseMsg = this.PerformOperationAndHandleExceptions( () => { if (model.Name == null) { throw new ArgumentNullException("name", "The name cannot be null!"); } if (model.ItemCategory == null) { throw new ArgumentNullException("category", "The category cannot be null!"); } var context = new StoreContext(); using (context) { var admin = context.Admins.FirstOrDefault(adm => adm.SessionKey == sessionKey); if (admin == null) { throw new InvalidOperationException("You are not admin!"); } string categoryNameLower = model.ItemCategory.ToLower(); var category = context.Categories.FirstOrDefault(c => c.Name == categoryNameLower); if (category == null) { category = new ItemCategory() { Name = categoryNameLower }; } var item = new Item() { Name = model.Name, ItemCategory = category, MeleDefense = model.MeleDefense, MeleAttack = model.MeleAttack, MagicDefense = model.MagicDefense, MagicAttack = model.MagicAttack, Description = model.Description, ImageUrl = model.ImageUrl, Equiped = false, HP = model.HP, MP = model.MP }; context.Items.Add(item); context.SaveChanges(); var createdItemModel = new CreatedItemModel() { ItemId = item.ItemId, Name = item.Name }; var response = this.Request.CreateResponse(HttpStatusCode.Created, createdItemModel); return response; } }); return responseMsg; }
private void UpdateItem(Item item, UpdatingItemModel model, StoreContext context) { if (model.Name != null) { item.Name = model.Name; } if (model.Description != null) { item.Description = model.Description; } if (model.ImageUrl != null) { item.ImageUrl = model.ImageUrl; } if (model.ItemCategory != null) { var categoryNameToLower = model.ItemCategory.ToLower(); var category = context.Categories.FirstOrDefault(c => c.Name == categoryNameToLower); if (category == null) { category = new ItemCategory { Name = categoryNameToLower }; } item.ItemCategory = category; } item.MagicAttack = model.MagicAttack; item.MagicDefense = model.MagicDefense; item.MeleAttack = model.MeleAttack; item.MeleDefense = model.MeleDefense; }