Ejemplo n.º 1
0
        public HttpResponseMessage PutUpdateItem(
            int id,
            [FromBody] UpdatingItemModel model,
            [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string sessionKey)
        {
            var responseMsg = this.PerformOperationAndHandleExceptions(
                () =>
            {
                var context = new StoreContext();
                using (context)
                {
                    var admin = context.Admins.FirstOrDefault(u => u.SessionKey == sessionKey);
                    if (admin == null)
                    {
                        throw new ArgumentOutOfRangeException("You are not admin!");
                    }

                    var item = context.Items.FirstOrDefault(i => i.ItemId == id);
                    if (item == null)
                    {
                        throw new ArgumentOutOfRangeException("itemId", "Invalid item");
                    }

                    UpdateItem(item, model, context);
                    context.SaveChanges();

                    var response =
                        this.Request.CreateResponse(HttpStatusCode.OK);
                    return(response);
                }
            });

            return(responseMsg);
        }
Ejemplo n.º 2
0
        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;
            item.Price        = model.Price;
        }