public IActionResult Update(EnemyFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                viewModel.EnemyTypeOptions        = _htmlHelper.GetEnumSelectList <EnemyType>();
                viewModel.EnemyElitenessesOptions = _htmlHelper.GetEnumSelectList <EnemyEliteness>();
                return(View(viewModel));
            }

            if (viewModel.IsUpdate)
            {
                var domain = _enemyManager.GetOne(viewModel.Enemy.Id);
                _mapper.Map(viewModel, domain);
                _enemyManager.Save(domain);
            }
            else
            {
                if (!NameLevelElitenessIsUnique(viewModel.Enemy))
                {
                    TempData["AlertMessage"]          = "Name/Level/Eliteness combination is not unique.";
                    viewModel.EnemyTypeOptions        = _htmlHelper.GetEnumSelectList <EnemyType>();
                    viewModel.EnemyElitenessesOptions = _htmlHelper.GetEnumSelectList <EnemyEliteness>();
                    return(View(viewModel));
                }
                _enemyManager.Add(viewModel.Enemy);
            }

            TempData["AlertMessage"] = viewModel.IsUpdate
                ? $"{viewModel.Enemy.Name} updated!"
                : $"{viewModel.Enemy.Name} added!";

            return(RedirectToAction("FullIndex"));
        }
        public IActionResult Delete(EnemyFormViewModel viewModel)
        {
            var domain = _enemyManager.GetOne(viewModel.Id);

            if (domain is null)
            {
                return(View("NotFound"));
            }

            _enemyManager.Delete(domain);
            TempData["AlertMessage"] = $"{domain.Name} Deleted!";
            return(RedirectToAction("FullIndex"));
        }
        public IActionResult Update(int id = -1)
        {
            EnemyFormViewModel model;

            if (id < 0) // creating new
            {
                model = new EnemyFormViewModel {
                    Id = id
                };
            }
            else // updating existing
            {
                var domain = _enemyManager.GetOne(id);
                model = _mapper.Map <EnemyFormViewModel>(domain);
            }
            model.EnemyTypeOptions        = _htmlHelper.GetEnumSelectList <EnemyType>();
            model.EnemyElitenessesOptions = _htmlHelper.GetEnumSelectList <EnemyEliteness>();
            return(View(model));
        }