예제 #1
0
        public void SavePlayer(User user)
        {
            var dbUser = GetUserById(user.Id);

            user.Inventory?.ToList().ForEach(inv =>
            {
                if (inv.Id == null)
                {
                    inv.Id = Guid.NewGuid().ToString();
                    _context.Inventory.Add(inv);
                }
                else
                {
                    var dbInv = _context.Inventory.FirstOrDefault(i => i.Id == inv.Id);
                    if (dbInv == null)
                    {
                        _context.Inventory.Add(inv);
                    }
                    else
                    {
                        _context.Entry(dbInv).CurrentValues.SetValues(inv);
                    }
                }
            });

            dbUser.Inventory?.ToList().ForEach(inv =>
            {
                // If the new user's inventory doesnt contain an inventory that was on the db user, remove it
                if (!user.Inventory.ToList().Exists(i => i.Id == inv.Id))
                {
                    _context.Inventory.Remove(inv);
                }
            });
            _context.Entry(dbUser).CurrentValues.SetValues(user);
            _context.SaveChanges();
        }
예제 #2
0
        public void SaveMob(Mob mob)
        {
            var dbMob = GetMobById(mob.Id);

            if (dbMob != null)
            {
                _context.Entry(dbMob).CurrentValues.SetValues(mob);
            }
            else
            {
                dbMob = mob;
                _context.Mobs.Add(dbMob);
            }
            _context.SaveChanges();
        }