private void START_SESSION_EVENT(StartSessionViewModel startSessionViewModel) { if (PlayerPrefs.GetInt("ProbaHasOpenSession") == 1) { EmptyEndSession(); } PlayerPrefs.SetInt("ProbaHasOpenSession", 1); StartSessionAsync(startSessionViewModel); }
public MainWindowViewModel() { _teamListViewModel = ContainerHelper.Container.Resolve <TeamListViewModel>(); _teamAddEditViewModel = ContainerHelper.Container.Resolve <TeamAddEditViewModel>(); _scorerListViewModel = ContainerHelper.Container.Resolve <ScorerListViewModel>(); _scorerAddEditViewModel = ContainerHelper.Container.Resolve <ScorerAddEditViewModel>(); _scorerSetTeamsViewModel = ContainerHelper.Container.Resolve <ScorerSetTeamsViewModel>(); _loginViewModel = ContainerHelper.Container.Resolve <LoginViewModel>(); _startSessionViewModel = ContainerHelper.Container.Resolve <StartSessionViewModel>(); _saveSessionConfigViewModel = ContainerHelper.Container.Resolve <SaveSessionConfigViewModel>(); _loadConfigViewModel = ContainerHelper.Container.Resolve <LoadConfigViewModel>(); _deleteBadSessionViewModel = ContainerHelper.Container.Resolve <DeleteBadSessionViewModel>(); _sessionStartConfirmViewModel = ContainerHelper.Container.Resolve <SessionStartConfirmViewModel>(); _loadGameViewModel = ContainerHelper.Container.Resolve <LoadGameViewModel>(); _reportsListViewModel = ContainerHelper.Container.Resolve <ReportsListViewModel>(); _currentViewModel = _loginViewModel; NavCommand = new RelayCommand <string>(OnNav); _teamListViewModel.AddTeamRequested += NavToAddTeam; _teamListViewModel.EditTeamRequested += NavToEditTeam; _teamAddEditViewModel.Done += NavToTeamList; _scorerListViewModel.AddScorerRequested += NavToAddScorer; _scorerListViewModel.EditScorerRequested += NavToEditScorer; _scorerListViewModel.AssociateTeamsRequested += NavToAssociateTeamsWithScorer; _scorerAddEditViewModel.Done += NavToScorerList; _scorerAddEditViewModel.AssociateTeamsRequested += NavToAssociateTeamsWithScorer; _scorerSetTeamsViewModel.Done += NavToScorerList; _startSessionViewModel.Done += NavToLogin; _startSessionViewModel.LoadConfigRequested += NavToLoadConfig; _startSessionViewModel.SaveConfigRequested += NavToSaveConfig; _startSessionViewModel.StartSessionRequested += NavToConfirmSession; _saveSessionConfigViewModel.Done += NavToLogin; _loadConfigViewModel.Done += NavToLogin; _loadConfigViewModel.UseConfigRequested += NavToConfirmSession; _loadConfigViewModel.FailedLoadError += NavToBadSession; _deleteBadSessionViewModel.Done += NavToLogin; _sessionStartConfirmViewModel.Done += NavToLogin; _sessionStartConfirmViewModel.StartSessionRequested += OpenScoringWindow; _loadGameViewModel.StartGameRequested += LoadScoringWindow; _loadGameViewModel.FailedLoadError += NavToBadSession; _loadGameViewModel.Done += NavToLogin; _reportsListViewModel.Done += NavToLogin; }
private async void StartSessionAsync(StartSessionViewModel sessionViewModel) { if (string.IsNullOrEmpty(_basicData.UserId)) { _basicData.UserId = PlayerPrefs.GetString("ProbaUserID"); sessionViewModel.UserId = _basicData.UserId; } if (Application.internetReachability == NetworkReachability.NotReachable || _sending) { SaveStartSessionInDB(sessionViewModel); return; } try { var(success, statusCode, sessionResponse) = await _probaHttpClient.SendStartSessionAsync(sessionViewModel); if (!success) { SaveStartSessionInDB(sessionViewModel); return; } if (statusCode != HttpStatusCode.OK) { SaveStartSessionInDB(sessionViewModel); _probaLogger.LogWarning($"couldn't send start session with {statusCode} status"); } _basicData.CurrentSessionId = sessionResponse.SessionId; _basicData.CurrentSessionLocation = sessionResponse.Location; _basicData.CurrentSessionStartTime = DateTime.UtcNow; _basicData.HasActiveSession = true; _basicData.SessionCount = sessionViewModel.SessionCount; _basicData.FirstSessionStartTime = new DateTime(sessionViewModel.FirstSessionTime); PlayerPrefs.SetString("ProbaSessionID", _basicData.CurrentSessionId); } catch (Exception e) { _probaLogger.LogError(e.Message, e.StackTrace); SaveStartSessionInDB(sessionViewModel); } }
/// <summary>Initializes Proba SDK</summary> public static void Initialize() { _ = new StartSessionViewModel(true); }
internal static void StartSessionCreated(StartSessionViewModel startSessionViewModel) { StartSession?.Invoke(startSessionViewModel); }
private void SaveStartSessionInDB(StartSessionViewModel sessionViewModel) { var ssDB = JsonConvert.SerializeObject(sessionViewModel); DatabaseConnection.InsertUnsentEvent("START_SESSION", ssDB); }