Exemplo n.º 1
0
 private void START_SESSION_EVENT(StartSessionViewModel startSessionViewModel)
 {
     if (PlayerPrefs.GetInt("ProbaHasOpenSession") == 1)
     {
         EmptyEndSession();
     }
     PlayerPrefs.SetInt("ProbaHasOpenSession", 1);
     StartSessionAsync(startSessionViewModel);
 }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
 /// <summary>Initializes Proba SDK</summary>
 public static void Initialize()
 {
     _ = new StartSessionViewModel(true);
 }
Exemplo n.º 5
0
 internal static void StartSessionCreated(StartSessionViewModel startSessionViewModel)
 {
     StartSession?.Invoke(startSessionViewModel);
 }
Exemplo n.º 6
0
        private void SaveStartSessionInDB(StartSessionViewModel sessionViewModel)
        {
            var ssDB = JsonConvert.SerializeObject(sessionViewModel);

            DatabaseConnection.InsertUnsentEvent("START_SESSION", ssDB);
        }