public IActionResult Unit(EditUnitViewModel editModel) { UnitModel editUnit = context.Units.Single(c => c.ID == editModel.soloID); editUnit.ARM = editModel.ARM; editUnit.CMD = editModel.CMD; editUnit.DEF = editModel.DEF; editUnit.FA = editModel.FA; editUnit.MAT = editModel.MAT; editUnit.RAT = editModel.RAT; editUnit.Name = editModel.Name; editUnit.SPD = editModel.SPD; editUnit.PointCost = editModel.PointCost; editUnit.STR = editModel.STR; editUnit.MaxUnit = editModel.MaxUnit; editUnit.MinUnit = editModel.MaxUnit; editUnit.factionName = editModel.Faction; context.SaveChanges(); editModel.currenntAbilIDs = context.UnitAbilities.Where(c => c.UnitID == editUnit.ID).Select(x => x.AbilityID).ToList(); editModel.currenntSpellIDs = context.UnitSpells.Where(c => c.UnitID == editUnit.ID).Select(x => x.SpellID).ToList(); editModel.currenntWeaponIDs = context.UnitWeapons.Where(c => c.UnitID == editUnit.ID).Select(x => x.WeaponId).ToList(); if (editModel.abilIDS != null) { foreach (var abil in editModel.abilIDS) { if (!editModel.currenntAbilIDs.Contains(abil)) { UnitAbiliity NewSoloAbility = new UnitAbiliity(); NewSoloAbility.AbilityID = abil; NewSoloAbility.UnitID = editModel.soloID; context.UnitAbilities.Add(NewSoloAbility); context.SaveChanges(); } foreach (var currentAbil in editModel.currenntAbilIDs) { if (!editModel.abilIDS.Contains(currentAbil)) { UnitAbiliity soloabil = (from s in context.UnitAbilities where s.AbilityID == currentAbil where s.UnitID == editModel.soloID select s).FirstOrDefault <UnitAbiliity>(); context.UnitAbilities.Remove(soloabil); context.SaveChanges(); } } } } else { // delete all solo abils var soloAbils = context.UnitAbilities.Where(c => c.UnitID == editModel.soloID).ToList(); foreach (var Abil in soloAbils) { context.UnitAbilities.Remove(Abil); context.SaveChanges(); } } if (editModel.weapIDS != null) { foreach (var weap in editModel.weapIDS) { if (!editModel.currenntWeaponIDs.Contains(weap)) { UnitWeapon NewSoloWeapon = new UnitWeapon(); NewSoloWeapon.WeaponId = weap; NewSoloWeapon.UnitID = editModel.soloID; context.UnitWeapons.Add(NewSoloWeapon); context.SaveChanges(); } foreach (var weaps in editModel.currenntWeaponIDs) { if (!editModel.weapIDS.Contains(weaps)) { UnitWeapon soloWeap = (from s in context.UnitWeapons where s.WeaponId == weap where s.UnitID == editModel.soloID select s).FirstOrDefault <UnitWeapon>(); context.UnitWeapons.Remove(soloWeap); context.SaveChanges(); } } } } else { // delete all solo abils var soloWeaps = context.UnitWeapons.Where(c => c.UnitID == editModel.soloID).ToList(); foreach (var Weap in soloWeaps) { context.UnitWeapons.Remove(Weap); context.SaveChanges(); } } if (editModel.spellIDS != null) { foreach (var spell in editModel.spellIDS) { if (!editModel.currenntSpellIDs.Contains(spell)) { UnitSpell NewSoloSpell = new UnitSpell(); NewSoloSpell.SpellID = spell; NewSoloSpell.UnitID = editModel.soloID; context.UnitSpells.Add(NewSoloSpell); context.SaveChanges(); } foreach (var spells in editModel.currenntSpellIDs) { if (!editModel.spellIDS.Contains(spells)) { UnitSpell soloSpell = (from s in context.UnitSpells where s.SpellID == spell where s.UnitID == editModel.soloID select s).FirstOrDefault <UnitSpell>(); context.UnitSpells.Remove(soloSpell); context.SaveChanges(); } } } } else { // delete all solo abils var soloSpells = context.UnitSpells.Where(c => c.UnitID == editModel.soloID).ToList(); foreach (var Spell in soloSpells) { context.UnitSpells.Remove(Spell); context.SaveChanges(); } } return(Redirect("/View/Unit/" + editModel.soloID)); }
public IActionResult Unit(AddUnitViewModel model) { if (ModelState.IsValid) { UnitModel newUnit = new UnitModel(); newUnit.Name = model.Name; newUnit.ARM = model.ARM; newUnit.CMD = model.CMD; newUnit.DEF = model.DEF; newUnit.FA = model.FA; newUnit.MAT = model.MAT; newUnit.MaxUnit = model.MaxUnit; newUnit.MinUnit = model.MinUnit; newUnit.PointCost = model.PointCost; newUnit.RAT = model.RAT; newUnit.SPD = model.SPD; newUnit.STR = model.STR; newUnit.FA = model.FA; newUnit.factionName = model.Faction; context.Units.Add(newUnit); context.SaveChanges(); if (model.abilIDS != null) { foreach (var abil in model.abilIDS) { UnitAbiliity NewUnitAbillity = new UnitAbiliity(); NewUnitAbillity.AbilityID = abil; NewUnitAbillity.UnitID = newUnit.ID; context.UnitAbilities.Add(NewUnitAbillity); context.SaveChanges(); } } if (model.weapIDS != null) { foreach (var weap in model.weapIDS) { UnitWeapon newWeapon = new UnitWeapon(); newWeapon.WeaponId = weap; newWeapon.UnitID = newUnit.ID; context.UnitWeapons.Add(newWeapon); context.SaveChanges(); } } if (model.spellIDS != null) { foreach (var spell in model.spellIDS) { UnitSpell NewSoloSpell = new UnitSpell(); NewSoloSpell.SpellID = spell; NewSoloSpell.UnitID = newUnit.ID; context.UnitSpells.Add(NewSoloSpell); context.SaveChanges(); } } context.Units.Add(newUnit); context.SaveChanges(); return(Redirect("/")); } return(View("AdUnit", model)); }