public async Task AddToSearch(SearchOpponent searchOpponent) { throw new System.NotImplementedException(); //Dodać i oznajmić kiedy znaleziono przeciwnika //potem, zrobić tak że ta klasa funkcjonuje cały czas }
public async Task CancelSearchOpponentAsync() { var mockContext = new Mock <IBoardGameDbContext>(); var mockService = new BoardGamesOnline.Services.GameOnline.GameOnlineService(new Mocks.BgDatabaseUowBuliderMock(mockContext.Object)); var searchUser = new SearchOpponent { UserId = 1, GameType = GameTypes.Chess }; //Act Task <Match> opponentTask1 = mockService.SearchOpponentAsync(searchUser); Thread.Sleep(3000); mockService.CancelSearchOpponentAsync(searchUser.UserId); Match opponent1 = await opponentTask1; Assert.IsNull(opponent1); }
public async Task <Match> SearchOpponentAsync(SearchOpponent searchOpponent) { //jak na razie test SearchForMetchUsers.Add(searchOpponent); Match findOpponent = null; while (findOpponent == null) { await Task.Delay(1000); if (searchOpponent.IsCancel) { break; } findOpponent = this.PlayedMatches.FirstOrDefault(f => f.Match.MatchUsers.Any(a => a.User.UserId == searchOpponent.UserId))?.Match; } return(findOpponent); }