Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }