public async Task <SearchGame> StartSearchGame(InSearchGame inSearchGame, int userId, int providerId) { var lastSearcGame = await context.SearchGames.FirstOrDefaultAsync(x => x.UserId == userId); if (lastSearcGame != null) { throw ExceptionFactory.SoftException(ExceptionEnum.GameAlreadySearch, "GameAlreadySearch"); } var game = await context.Games.FirstOrDefaultAsync(x => x.IsEnd == false); if (game != null) { throw ExceptionFactory.SoftException(ExceptionEnum.LastGameNotEnd, "LastGameNotEnd"); } var newSearchGame = new SearchGame { GameTypeId = inSearchGame.GameTypeId, CategoryId = inSearchGame.CategoryId, ProviderId = providerId, UserId = userId }; await context.SearchGames.AddAsync(newSearchGame); await context.SaveChangesAsync(); return(newSearchGame); }
public async Task <OutSearchGame> StartSearchGame([FromBody] InSearchGame inSearchGame) { var searchGame = await gameService.StartSearchGame(inSearchGame, UserId, ProviderId); return(mapperProfile.Map <OutSearchGame>(searchGame)); }