Example #1
0
        /// <summary>
        /// Create a new Dungeon Master with the provided information from the API request &
        /// Create Request Objects between the new DM and all active players in the database.
        /// </summary>
        /// <param name="dungeonMaster">Dungeon Master information from the API request</param>
        /// <returns>Newly created Dungeon Master</returns>
        public async Task <DungeonMasterDTO> CreateDungeonMaster(DungeonMasterDTO dungeonMasterDTO)
        {
            DungeonMaster dungeonMaster = DeconstructDTO(dungeonMasterDTO);

            _context.Entry(dungeonMaster).State = EntityState.Added;
            var result = await _context.SaveChangesAsync();

            dungeonMasterDTO = await BuildDTO(dungeonMaster);

            dungeonMasterDTO.ActiveRequests = new List <RequestDTO>();

            var players = await _context.Players.Where(x => x.PartyId == 1).ToListAsync();

            if (players != null)
            {
                foreach (var player in players)
                {
                    RequestDTO newReq = await _request.CreateRequest(player.Id, dungeonMaster.Id);

                    dungeonMasterDTO.ActiveRequests.Add(newReq);
                }
            }
            PartyDTO newParty = new PartyDTO
            {
                DungeonMasterId = dungeonMasterDTO.Id,
                MaxSize         = dungeonMasterDTO.PartySize,
                Full            = false
            };

            dungeonMasterDTO.Party = await _party.CreateParty(newParty);

            dungeonMasterDTO.Id = dungeonMaster.Id;
            return(dungeonMasterDTO);
        }
Example #2
0
        public async Task <ActionResult <Party> > PostParty(PartyDTO party)
        {
            var result = await _party.CreateParty(party);

            return(CreatedAtAction("GetParty", new { id = result.Id }, party));
        }