public IActionResult Warjack(AddWarjackViewModel model) { if (ModelState.IsValid) { Warjack newJack = new Warjack(); newJack.Name = model.Name; newJack.ARM = model.ARM; newJack.CMD = model.CMD; newJack.DEF = model.DEF; newJack.FA = model.FA; newJack.MAT = model.MAT; newJack.PointCost = model.PointCost; newJack.RAT = model.RAT; newJack.SPD = model.SPD; newJack.STR = model.STR; newJack.FA = model.FA; newJack.Size = model.Size; newJack.factionName = model.Faction; context.Warjacks.Add(newJack); context.SaveChanges(); if (model.abilIDS != null) { foreach (var abil in model.abilIDS) { WarjackAbillity NewSoloAbility = new WarjackAbillity(); NewSoloAbility.AbillityID = abil; NewSoloAbility.WarjackID = newJack.ID; context.WarjackAbilities.Add(NewSoloAbility); context.SaveChanges(); } } if (model.weapIDS != null) { foreach (var weap in model.weapIDS) { WarjackWeapon NewSoloWeapon = new WarjackWeapon(); NewSoloWeapon.WeaponId = weap; NewSoloWeapon.WarjackId = newJack.ID; context.WarjackWeapons.Add(NewSoloWeapon); context.SaveChanges(); } } return(Redirect("/")); } return(View("Warjack", model)); }
public IActionResult Warjack(EditWarjackViewModel editModel) { Warjack editWarjack = context.Warjacks.Single(c => c.ID == editModel.soloID); editWarjack.ARM = editModel.ARM; editWarjack.CMD = editModel.CMD; editWarjack.DEF = editModel.DEF; editWarjack.FA = editModel.FA; editWarjack.MAT = editModel.MAT; editWarjack.RAT = editModel.RAT; editWarjack.Name = editModel.Name; editWarjack.SPD = editModel.SPD; editWarjack.PointCost = editModel.PointCost; editWarjack.STR = editModel.STR; editWarjack.factionName = editModel.Faction; editWarjack.Size = editModel.Size; context.SaveChanges(); editModel.currenntAbilIDs = context.WarjackAbilities.Where(c => c.WarjackID == editWarjack.ID).Select(x => x.AbillityID).ToList(); editModel.currenntWeaponIDs = context.WarjackWeapons.Where(c => c.WarjackId == editWarjack.ID).Select(x => x.WeaponId).ToList(); if (editModel.abilIDS != null) { foreach (var abil in editModel.abilIDS) { if (!editModel.currenntAbilIDs.Contains(abil)) { WarjackAbillity NewSoloAbility = new WarjackAbillity(); NewSoloAbility.AbillityID = abil; NewSoloAbility.WarjackID = editModel.soloID; context.WarjackAbilities.Add(NewSoloAbility); context.SaveChanges(); } foreach (var currentAbil in editModel.currenntAbilIDs) { if (!editModel.abilIDS.Contains(currentAbil)) { WarjackAbillity soloabil = (from s in context.WarjackAbilities where s.AbillityID == currentAbil where s.WarjackID == editModel.soloID select s).FirstOrDefault <WarjackAbillity>(); context.WarjackAbilities.Remove(soloabil); context.SaveChanges(); } } } } else { // delete all solo abils var soloAbils = context.WarjackAbilities.Where(c => c.WarjackID == editModel.soloID).ToList(); foreach (var Abil in soloAbils) { context.WarjackAbilities.Remove(Abil); context.SaveChanges(); } } if (editModel.weapIDS != null) { foreach (var weap in editModel.weapIDS) { if (!editModel.currenntWeaponIDs.Contains(weap)) { WarjackWeapon NewSoloWeapon = new WarjackWeapon(); NewSoloWeapon.WeaponId = weap; NewSoloWeapon.WarjackId = editModel.soloID; context.WarjackWeapons.Add(NewSoloWeapon); context.SaveChanges(); } foreach (var weaps in editModel.currenntWeaponIDs) { if (!editModel.weapIDS.Contains(weaps)) { WarjackWeapon soloWeap = (from s in context.WarjackWeapons where s.WeaponId == weap where s.WarjackId == editModel.soloID select s).FirstOrDefault <WarjackWeapon>(); context.WarjackWeapons.Remove(soloWeap); context.SaveChanges(); } } } } else { // delete all solo abils var soloWeaps = context.WarjackWeapons.Where(c => c.WarjackId == editModel.soloID).ToList(); foreach (var Weap in soloWeaps) { context.WarjackWeapons.Remove(Weap); context.SaveChanges(); } } return(Redirect("/View/Warjack/" + editModel.soloID)); }