public Match(POCO.MatchPoco poco) { Id = poco._id; MatchHash = poco.match_hash; IsBetting = poco.betting; Map = poco.map; TeamSize = poco.team_size; if (poco.bets != null) { foreach (POCO.BetPoco bet in poco.bets) { Bet item = new Bet(bet); Bets.Add(item); } } }
public void AcceptBet(Bet bet) { RestResponse<ApiResponse> response = null; _userData.PgSession.BeginAndCallback(delegate { var url = _userData.PgSession.GetWebAppFunction("/api", "/game_rooms/" + GameRoom.Id + "/bets/" + bet.Id + ".json"); var client = new RestClient(url); var request = new RestRequest(Method.PUT); response = (RestResponse<ApiResponse>)client.Execute<ApiResponse>(request); }, delegate { if (!response.IsOk()) { string msg = response.Data.errors == null ? response.StatusCode.ToString() : string.Concat(response.Data.errors); MessageDialog.Show(_window, "Failed to accept bet", msg); } }); }
public void Init(SessionManager manager, GameRoom.GameRoomSession session, Bet bet) { _manager = manager; _session = session; _bet = bet; }
public void ViewBetting(string id, Bet bet) { ChatroomSessionBase session; if (_chatroomUsage.TryGetValue(id, out session)) { GameRoomSession gameRoomSession = session as GameRoomSession; BetDetailsDialogModelView modelView = new BetDetailsDialogModelView(); modelView.Init(this, gameRoomSession, bet); var dialog = new BetDetailsDialogView(); dialog.Owner = gameRoomSession.Window; dialog.DataContext = modelView; dialog.ShowDialog(); if (dialog.DialogResult == true) { gameRoomSession.AcceptBet(bet); } } }
public void ViewBetDetails(Bet bet) { _manager.ViewBetting(_session.ChatroomId, bet); }
public void CancelGameRoomBet(Bet bet) { _session.CancelBet(bet); }
public Bet ToBet() { var selectedOdds = (ComboBoxItem)comboBoxOdds.SelectedItem; Bet bet = new Bet { Offerer = UserDataManager.UserData.User, OffererWager = Wager, OffererOdds = selectedOdds.Content.ToString(), }; if (IsOneOnOneBetting) { bet.OffererChoice = UserDataManager.UserData.User; } else if (IsTeamBetting && UserDataManager.UserData.User.HasTeam) { bet.OffererChoice = UserDataManager.UserData.User.Team; } if (_match == null) { bet.MyMatch = new Match(); bet.MyMatch.Map = _mapName; bet.MyMatch.TeamSize = _teamSize; } else { bet.MyMatch = _match; bet.MatchHash = _match.MatchHash; } return bet; }
public void CancelBet(Bet bet) { RestResponse<ApiResponse> response = null; _userData.PgSession.BeginAndCallback(delegate { var url = _userData.PgSession.GetWebAppFunction("/api", "/game_rooms/" + GameRoom.Id + "/bets/" + bet.Id + ".json"); var client = new RestClient(url); var request = new RestRequest(Method.DELETE); response = (RestResponse<ApiResponse>)client.Execute<ApiResponse>(request); }, delegate { if (response.IsOk()) { if (MyMatch.Id == bet.MyMatch.Id && bet.MyMatch.State == MatchState.created) { _myMatch = new Match(); } } else { string msg = response.Data.errors == null ? response.StatusCode.ToString() : string.Concat(response.Data.errors); MessageDialog.Show(_window, "Failed to delete bet", msg); } }); }
private bool TryGetBetById(BetPoco poco, out Bet bet) { bet = null; foreach (var item in RoomBets) { if (item.Id == poco._id) { bet = item; return true; } } return false; }
public void OnBetNew(BetPoco poco) { Bet bet = new Bet(_userData, MyMatch, poco); RoomBets.Add(bet); _myMatch = new Match(); }
public void LoadMatch() { if (string.IsNullOrWhiteSpace(GameRoom.MatchId)) return; var url = _userData.PgSession.GetWebApiV1Function("/matches/" + GameRoom.MatchId + ".json", "include_bets=true"); RestResponse<MatchAndBetsPoco> response = null; _userData.PgSession.BeginAndCallback(delegate { response = SocketSession.Rest<MatchAndBetsPoco>(url, Method.GET, null); }, delegate { if (!response.IsOk()) return; MyMatch.Update(_userData, response.Data.match); foreach (var betPoco in response.Data.bets) { Bet bet = new Bet(_userData, MyMatch, betPoco); RoomBets.Add(bet); } }); }
public void LoadBets() { if (GameRoom.Bets.Length > 0) return; RestResponse<List<BetPoco>> response = null; _userData.PgSession.BeginAndCallback(delegate { var url = _userData.PgSession.GetWebAppFunction("/api", "/game_rooms/" + GameRoom.Id + "/bets", "include_matches=true"); var client = new RestClient(url); var request = new RestRequest(Method.GET); response = (RestResponse<List<BetPoco>>)client.Execute<List<BetPoco>>(request); }, delegate { if (response.IsOk()) { if (response.Data != null) { var bets = response.Data; foreach (BetPoco bet in bets) { Match match = new Match(bet.match); Bet item = new Bet(_userData, match, bet); RoomBets.Add(item); } } } else { MessageDialog.Show(_window, "Failed to get Bets", "Sorry, failed to get bet list.\r\nDetails: " + response.ErrorMessage); } }); }
public void CreateBet(Bet bet) { var poco = bet.ToPoco(); RestResponse<ApiResponse> response = null; _userData.PgSession.BeginAndCallback(delegate { var url = _userData.PgSession.GetWebAppFunction("/api", "/game_rooms/" + GameRoom.Id + "/bets"); var client = new RestClient(url); var request = new RestRequest(Method.POST) { RequestFormat = RestSharp.DataFormat.Json }; var root = new { bet = poco }; request.AddBody(root); response = (RestResponse<ApiResponse>)client.Execute<ApiResponse>(request); }, delegate { if (response.IsOk()) { //if (TryGetBetById(poco, out bet)) //bet.SetOutcome(outcome); } else { string msg = response.Data.errors == null ? response.StatusCode.ToString() : string.Concat(response.Data.errors); MessageDialog.Show(_window, "Failed to create bet", msg); } }); }