/// <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); }
public async Task <ActionResult <Party> > PostParty(PartyDTO party) { var result = await _party.CreateParty(party); return(CreatedAtAction("GetParty", new { id = result.Id }, party)); }