public async Task <Ability> Update(Ability item, List <AbilityBuffAndEffect> AbilityBuffAndEffectVM, bool IsFromCharacter = false) { var ability = _context.Abilities.FirstOrDefault(x => x.AbilityId == item.AbilityId); if (ability == null) { return(ability); } ability.Name = item.Name; ability.Level = item.Level; ability.Command = item.Command; ability.CommandName = item.CommandName; ability.Description = item.Description; ability.gmOnly = item.gmOnly; ability.Stats = item.Stats; ability.ImageUrl = item.ImageUrl; ability.IsEnabled = item.IsEnabled; ability.Metatags = item.Metatags; if (!IsFromCharacter) { ability.MaxNumberOfUses = item.MaxNumberOfUses; ability.CurrentNumberOfUses = item.CurrentNumberOfUses; } _context.AbilityBuffAndEffects.RemoveRange(_context.AbilityBuffAndEffects.Where(x => x.AbilityId == item.AbilityId)); try { _context.SaveChanges(); List <AbilityBuffAndEffect> listbuffs = new List <AbilityBuffAndEffect>(); foreach (var be in AbilityBuffAndEffectVM) { AbilityBuffAndEffect obj = new AbilityBuffAndEffect() { BuffAndEffectId = be.BuffAndEffectId, AbilityId = item.AbilityId }; listbuffs.Add(obj); } //SpellBuffAndEffectVM.ForEach(a => a.SpellId = spell.SpellId); _context.AbilityBuffAndEffects.AddRange(listbuffs); _context.SaveChanges(); ability.AbilityBuffAndEffects = listbuffs; } catch (Exception ex) { throw ex; } return(ability); }
public async Task <Ability> Core_CreateAbility(Ability ability, List <AbilityBuffAndEffect> AbilityBuffAndEffectVM) { ability.ParentAbilityId = ability.AbilityId; ability.AbilityId = 0; ability.AbilityBuffAndEffects = new List <AbilityBuffAndEffect>(); await _repo.Add(ability); int abilityID = ability.AbilityId; if (abilityID > 0) { if (AbilityBuffAndEffectVM != null && AbilityBuffAndEffectVM.Count > 0) { //AssociatedBuffAndEffects.ForEach(a => a.ItemMasterId = ItemMasterId); //_context.ItemMasterBuffAndEffects.AddRange(AssociatedBuffAndEffects); //_context.SaveChanges(); List <AbilityBuffAndEffect> listbuffs = new List <AbilityBuffAndEffect>(); foreach (var item in AbilityBuffAndEffectVM) { AbilityBuffAndEffect obj = new AbilityBuffAndEffect() { BuffAndEffectId = item.BuffAndEffectId, AbilityId = ability.AbilityId }; listbuffs.Add(obj); } //SpellBuffAndEffectVM.ForEach(a => a.SpellId = spell.SpellId); _context.AbilityBuffAndEffects.AddRange(listbuffs); _context.SaveChanges(); ability.AbilityBuffAndEffects = listbuffs; } } return(ability); }