public FindRoomsByCriteriaResult FindRoomsByCriteria(FindRoomsByCriteriaRequest request) { var result = new FindRoomsByCriteriaResult(); try { // arrange search criteria double betSize = request.Criterias.Contains(FindRoomsByCriteriaRequest.BET_SIZE) ? request.BetSize : -1; GamePreferences preferences = new NoLimitHoldem() { MaxNumberOfPlayers = request.Criterias.Contains(FindRoomsByCriteriaRequest.MAX_NUMBER_OF_PLAYERS) ? request.MaxNumberOfPlayers : -1, AntesValue = request.Criterias.Contains(FindRoomsByCriteriaRequest.ANTES_VALUE) ? request.Antes : -1, BuyInCost = request.Criterias.Contains(FindRoomsByCriteriaRequest.BUY_IN_COST) ? request.BuyInCost : -1, Name = request.Criterias.Contains(FindRoomsByCriteriaRequest.NAME) ? request.Name : "", MinimumBet = request.Criterias.Contains(FindRoomsByCriteriaRequest.MIN_BET) ? request.MinimumBet : -1, MinNumberOfPlayers = request.Criterias.Contains(FindRoomsByCriteriaRequest.MIN_NUMBER_OF_PLAYERS) ? request.MinNumberOfPlayers : -1, }; Player player = null; if (request.Criterias.Contains(FindRoomsByCriteriaRequest.PLAYER)) { player = _cache.RefreshAndGet( Players, request.Player, new PlayerNotFoundException(string.Format("player id: {0} not found, please re-enter the room.", request.Player)) ); } int level = request.Criterias.Contains(FindRoomsByCriteriaRequest.LEVEL) ? request.Level : -1; // call search var domainRooms = GameCenter.FindRoomsByCriteria(level, player, preferences, betSize); // assemble result result.Rooms = DomainRoomsToRoomsResults(domainRooms); result.Success = true; } catch (PokerException e) { result.Success = false; result.ErrorMessage = e.Message; Logger.Error(e, this); } return(result); }
public HttpResponseMessage FindRoomsByCriteria(FindRoomsByCriteriaRequest request) { var result = new FindRoomsByCriteriaResult(); try { result = service.FindRoomsByCriteria(request); } catch (Exception e) { result.ErrorMessage = e.Message; result.Success = false; return(Request.CreateResponse(HttpStatusCode.InternalServerError, result)); } return(Request.CreateResponse(HttpStatusCode.OK, result)); }