public async Task <IActionResult> Edit(int?id) { var skills = await GetSkills(); var elements = await GetElements(); var persona = _context.Personas.FirstOrDefault(p => p.Id == id); var currentSkillsId = persona.Skills.Select(c => c.Id).ToList(); var viewModel = new PersonaFormViewModels { Id = persona.Id, Name = persona.Name, Arcana = persona.Arcana, Level = persona.Level, Description = persona.Description, ResistList = elements, WeakList = elements, SkillsList = skills, SelectSkillsId = currentSkillsId }; if (id == null) { return(NotFound()); } return(View(viewModel)); }
public async Task <IActionResult> Edit(PersonaFormViewModels viewModel) { if (!ModelState.IsValid) { return(View("Edit", viewModel)); } var skills = _context.PersonaSkills.Include(s => s.Element).Include(c => c.Cost).ToList(); var elements = _context.PersonaElements.ToList(); var persona = await _context.Personas.FirstOrDefaultAsync(p => p.Id == viewModel.Id); if (persona != null) { persona.Name = viewModel.Name; persona.Level = viewModel.Level; persona.Arcana = viewModel.Arcana; persona.Stats = viewModel.Stats; persona.Description = viewModel.Description; persona.ResistElements = elements.Where(e => viewModel.ResistElementsId.Contains(e.Id)).Select(e => e).ToList(); persona.WeakElements = elements.Where(e => viewModel.WeakElementsId.Contains(e.Id)).Select(e => e).ToList(); persona.Skills = skills.Where(s => viewModel.SelectSkillsId.Contains(s.Id)).Select(s => s).ToList(); } await _context.SaveChangesAsync(); return(RedirectToAction("Index", "Persona")); }
public async Task <ActionResult> Create(PersonaFormViewModels viewModel) { if (!ModelState.IsValid) { return(View("Create", viewModel)); } var skills = _context.PersonaSkills.Include(s => s.Element).Include(c => c.Cost).ToList(); var elements = _context.PersonaElements.ToList(); var persona = new Persona { Name = viewModel.Name, Level = viewModel.Level, Arcana = viewModel.Arcana, Description = viewModel.Description, Stats = viewModel.Stats, ResistElements = elements.Where(e => viewModel.ResistElementsId.Contains(e.Id)).Select(x => x).ToList(), WeakElements = elements.Where(e => viewModel.WeakElementsId.Contains(e.Id)).Select(x => x).ToList(), Skills = skills.Where(s => viewModel.SelectSkillsId.Contains(s.Id)).Select(x => x).ToList() }; _context.Personas.Add(persona); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <IActionResult> Create() { var viewModel = new PersonaFormViewModels { SelectSkillsId = new List <int>(), SkillsList = await GetSkills(), ResistElementsId = new List <int>(), ResistList = await GetElements(), WeakElementsId = new List <int>(), WeakList = await GetElements() }; try { this.ViewBag.SkillsList = this.GetSkills(); this.ViewBag.ResistList = this.GetElements(); } catch (Exception ex) { Console.Write(ex.Message); } return(View("Create", viewModel)); }