public async Task <IActionResult> Rooms([FromBody] RoomTransport roomTransport) { if (!ModelState.IsValid) { return(BadRequest()); } var user = await _userManager.FindByIdAsync(roomTransport.LeaderId); if (user == null) { return(NotFound()); } var checkRoom = await _roomsRepository.GetRoomByNameAsync(roomTransport.Name); if (checkRoom != null) { return(Conflict()); } Room room = new Room() { Name = roomTransport.Name, MaxPlayers = roomTransport.MaxPlayers, LeaderId = roomTransport.LeaderId, CurrentPlayersCount = 0, Status = false, GameConfigurationId = roomTransport.GameConfigurationId }; var res = await _roomsRepository.AddRoomAsync(room); if (res == null) { _logger.LogWarning($"User #{user.Id} failed to create room"); return(StatusCode(500)); } var newRoom = new RoomTransport(res); _logger.LogInformation($"User #{user.Id} create room #{room.Id}"); return(Created(string.Empty, JsonConvert.SerializeObject(newRoom, new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() }))); }
public async Task <string> CreateRoom(BasicRoom baseData) { if (baseData?.Title.IsNullOrWhite() ?? true || baseData.People?.Count < 4) { return("error"); } Room room = new Room(baseData) { CreationDate = DateTime.UtcNow }; room.Sortear(); await _repo.AddRoomAsync(room); return(room.Id.ToString()); }