public ActionResult Add(Character character, int encounterId) { if (ModelState.IsValid) { character.EncounterId = encounterId; character.Encounter = _context.Encounters.Where(e => e.Id.Equals(encounterId)).SingleOrDefault(); character.SetIniativeScore(); //if added character has a greater iniativeScore than the current character with greatest iniativeScore, then set added character turn to true if (_context.Characters.ToList().Count <= 0) { character.Turn = true; } else { List <Character> characters = _context.Characters.ToList(); if (character.IniativeScore > _context.Characters.OrderByDescending(c => c.IniativeScore).First().IniativeScore) { foreach (Character characterInDB in characters) { characterInDB.Turn = false; } character.Turn = true; } } _context.Characters.Add(character); _context.SaveChanges(); return(RedirectToAction("Details", "Encounter", new { encounterId })); } return(PartialView()); }
public ActionResult Create(Encounter encounter) { //consider doing this in encounter controller if (String.IsNullOrWhiteSpace(encounter.Name)) { encounter.Name = "Encounter"; } _context.Encounters.Add(encounter); _context.SaveChanges(); return(RedirectToAction("Details", new { encounterId = encounter.Id })); }