示例#1
0
        public async Task <IActionResult> PutUser(User user)
        {
            _context.Update(user);

            await _context.SaveChangesAsync();

            return(Ok());
        }
示例#2
0
        public async Task <IActionResult> PutEncounter(Encounter encounter)
        {
            await _context.Database.BeginTransactionAsync();

            var server = await _context.Encounters
                         .Include(o => o.Waves)
                         .ThenInclude(o => o.Monsters)
                         .SingleOrDefaultAsync(o => o.EncounterId == encounter.EncounterId);

            if (server == null)
            {
                return(BadRequest("The encounter does not exist."));
            }

            foreach (var wave in server.Waves.ToList())
            {
                var localWave = encounter.Waves.SingleOrDefault(o => o.WaveId == wave.WaveId);
                if (localWave == null)
                {
                    server.Waves.Remove(wave);
                }
                else
                {
                    foreach (var monster in wave.Monsters.ToList())
                    {
                        var localMonster = localWave.Monsters.SingleOrDefault(o => o.Index == monster.Index);
                        if (localMonster == null)
                        {
                            wave.Monsters.Remove(monster);
                        }
                    }
                }
            }

            await _context.SaveChangesAsync();

            server.EncounterName = encounter.EncounterName;
            foreach (var wave in encounter.Waves)
            {
                if (wave.WaveId == 0)
                {
                    server.Waves.Add(wave);
                    continue;
                }

                var serverWave = server.Waves.SingleOrDefault(o => o.WaveId == wave.WaveId);

                if (serverWave != null)
                {
                    serverWave.Sort = wave.Sort;

                    foreach (var monster in wave.Monsters)
                    {
                        if (monster.WaveId == 0)
                        {
                            serverWave.Monsters.Add(monster);
                            continue;
                        }

                        var serverMonster = serverWave.Monsters.SingleOrDefault(o => o.Index == monster.Index);

                        if (serverMonster != null)
                        {
                            serverMonster.Count = monster.Count;
                            serverMonster.Sort  = monster.Sort;
                        }
                        else
                        {
                            serverWave.Monsters.Add(monster);
                        }
                    }
                }
            }

            await _context.SaveChangesAsync();

            _context.Database.CommitTransaction();

            return(Ok("Successfully updated encounter."));
        }