public async Task <IActionResult> PutCraftable(int id, Craftable craftable)
        {
            if (id != craftable.Id)
            {
                return(BadRequest());
            }

            _craftRepository.UpdateCraftable(craftable);

            try
            {
                await _craftRepository.Save();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!await CraftableExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <IActionResult> Edit(int id,
                                               [Bind("Id,Name,Form,Requirement,Effect,Materials")]
                                               Craftable craftable)
        {
            if (id != craftable.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _itemRepository.UpdateCraftable(craftable);
                    await _itemRepository.Save();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!await CraftableExists(craftable.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                return(RedirectToAction(nameof(Index)));
            }

            return(View(craftable));
        }
Example #3
0
        private async Task GetItems()
        {
            try
            {
                // Get list of items from item API
                var items = await _itemService.GetAll();

                if (items != null)
                {
                    // Check each, to see if it already exists in DB
                    foreach (var item in items)
                    {
                        var existItem = await _itemRepository.GetCraftableRef(item.Id);

                        if (existItem != null)
                        {
                            // If it exists, update if needed, else continue loop
                            if (item.Name.Equals(existItem.Name) && item.Requirement.Equals
                                    (existItem.Requirement) && item.Materials.Equals
                                    (existItem.Materials) && item.Effect.Equals(existItem.Effect) && item.Form.Equals
                                    (existItem.Form))
                            {
                                continue;
                            }
                            else
                            {
                                var updItem = new Craftable
                                {
                                    Effect      = item.Effect,
                                    Form        = item.Form,
                                    Id          = existItem.Id,
                                    Materials   = item.Materials,
                                    Name        = item.Name,
                                    Requirement = item.Requirement
                                };
                                _itemRepository.UpdateCraftable(updItem);
                            }
                        }
                        else
                        {
                            // Item doesn't exist, create new
                            var newItem = new Craftable
                            {
                                Name        = item.Name,
                                Requirement = item.Requirement,
                                Materials   = item.Materials,
                                Effect      = item.Effect,
                                Form        = item.Form,
                                ItemRef     = item.Id,
                                Id          = item.Id
                            };
                            _itemRepository.InsertCraftable(newItem);
                        }
                    }

                    await _itemRepository.Save();
                }
            }
            catch (BrokenCircuitException)
            {
                _logger.LogWarning("Broken Circuit");
            }
        }