示例#1
0
        /// <summary>
        /// Update a specific request in the database and check if both users in request have approved or "swiped right", add player to party and deactivate requests if so.
        /// </summary>
        /// <param name="updatedRequest">Updated request information from swipe</param>
        /// <returns>New updated Request</returns>
        public async Task <RequestDTO> UpdateRequest(RequestDTO updatedRequestDTO)
        {
            Request updatedRequest = DeconstructDTO(updatedRequestDTO);

            if (updatedRequest.PlayerAccepted && updatedRequest.DungeonMasterAccepted)
            {
                // Add the player to the party and deactivate their requests if they both user's have accepted the request.
                await _party.AddPlayerToParty(updatedRequest.DungeonMasterId, updatedRequest.PlayerId);

                updatedRequest.Active = false;
                await DeactivateAllPlayerRequests(updatedRequest.PlayerId);
            }
            _context.Entry(updatedRequest).State = EntityState.Modified;
            await _context.SaveChangesAsync();

            return(updatedRequestDTO);
        }