public async Task <Spell> Update(Spell spell, List <SpellBuffAndEffect> SpellBuffAndEffectVM) { var spellInDb = _context.Spells.FirstOrDefault(x => x.SpellId == spell.SpellId); if (spellInDb == null) { return(spellInDb); } spellInDb.Name = spell.Name; spellInDb.School = spell.School; spellInDb.Class = spell.Class; spellInDb.Levels = spell.Levels; spellInDb.Command = spell.Command; spellInDb.CommandName = spell.CommandName; spellInDb.MaterialComponent = spell.MaterialComponent; spellInDb.IsMaterialComponent = spell.IsMaterialComponent; spellInDb.IsSomaticComponent = spell.IsSomaticComponent; spellInDb.IsVerbalComponent = spell.IsVerbalComponent; spellInDb.CastingTime = spell.CastingTime; spellInDb.Description = spell.Description; spellInDb.gmOnly = spell.gmOnly; spellInDb.Stats = spell.Stats; spellInDb.HitEffect = spell.HitEffect; spellInDb.MissEffect = spell.MissEffect; spellInDb.EffectDescription = spell.EffectDescription; spellInDb.ShouldCast = spell.ShouldCast; spellInDb.ImageUrl = spell.ImageUrl; spellInDb.Memorized = spell.Memorized; spellInDb.Metatags = spell.Metatags; _context.SpellBuffAndEffects.RemoveRange(_context.SpellBuffAndEffects.Where(x => x.SpellId == spell.SpellId)); try { _context.SaveChanges(); List <SpellBuffAndEffect> listbuffs = new List <SpellBuffAndEffect>(); foreach (var item in SpellBuffAndEffectVM) { SpellBuffAndEffect obj = new SpellBuffAndEffect() { BuffAndEffectId = item.BuffAndEffectId, SpellId = spell.SpellId }; listbuffs.Add(obj); } //SpellBuffAndEffectVM.ForEach(a => a.SpellId = spell.SpellId); _context.SpellBuffAndEffects.AddRange(listbuffs); _context.SaveChanges(); spellInDb.SpellBuffAndEffects = listbuffs; } catch (Exception ex) { throw ex; } return(spellInDb); }
public async Task <Spell> Core_CreateSpell(Spell spell, List <SpellBuffAndEffect> SpellBuffAndEffectVM) { spell.ParentSpellId = spell.SpellId; spell.SpellId = 0; spell.SpellBuffAndEffects = new List <SpellBuffAndEffect>(); await _repo.Add(spell); int spellID = spell.SpellId; if (spellID > 0) { if (SpellBuffAndEffectVM != null && SpellBuffAndEffectVM.Count > 0) { //AssociatedBuffAndEffects.ForEach(a => a.ItemMasterId = ItemMasterId); //_context.ItemMasterBuffAndEffects.AddRange(AssociatedBuffAndEffects); //_context.SaveChanges(); List <SpellBuffAndEffect> listbuffs = new List <SpellBuffAndEffect>(); foreach (var item in SpellBuffAndEffectVM) { SpellBuffAndEffect obj = new SpellBuffAndEffect() { BuffAndEffectId = item.BuffAndEffectId, SpellId = spell.SpellId }; listbuffs.Add(obj); } //SpellBuffAndEffectVM.ForEach(a => a.SpellId = spell.SpellId); _context.SpellBuffAndEffects.AddRange(listbuffs); _context.SaveChanges(); spell.SpellBuffAndEffects = listbuffs; } } return(spell); }