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