Beispiel #1
0
        private async void ExistingEndSession(EndSessionViewModel endSessionViewModel)
        {
            if (Application.internetReachability == NetworkReachability.NotReachable)
            {
                OldRecordCouldNotSent();
                return;
            }

            try
            {
                endSessionViewModel.SessionId = _basicData.CurrentSessionId;
                endSessionViewModel.Location  = _basicData.CurrentSessionLocation;
                var(success, statusCode)      = await _probaHttpClient.SendEndSessionAsync(endSessionViewModel);

                if (!success)
                {
                    OldRecordCouldNotSent();
                    return;
                }
                if (statusCode != HttpStatusCode.OK)
                {
                    OldRecordCouldNotSent();
                    _probaLogger.LogWarning($"couldn't send end session with {statusCode} status");
                    return;
                }

                OldRecordSent();
            }
            catch (Exception e)
            {
                OldRecordCouldNotSent();
                _probaLogger.LogError(e.Message, e.StackTrace);
            }
        }
Beispiel #2
0
        private async void EndSessionAsync(EndSessionViewModel endSessionViewModel)
        {
            endSessionViewModel.Error = _basicData.HasError;

            if (Application.internetReachability == NetworkReachability.NotReachable || _sending)
            {
                SaveEndSessionInDB(endSessionViewModel);
                return;
            }
            try
            {
                var(success, statusCode) = await _probaHttpClient.SendEndSessionAsync(endSessionViewModel);

                if (!success)
                {
                    SaveEndSessionInDB(endSessionViewModel);
                    return;
                }
                if (statusCode != HttpStatusCode.OK)
                {
                    SaveEndSessionInDB(endSessionViewModel);
                    _probaLogger.LogWarning($"couldn't send end session with {statusCode} status");
                }
            }
            catch (Exception e)
            {
                SaveEndSessionInDB(endSessionViewModel);
                _probaLogger.LogError(e.Message, e.StackTrace);
            }
        }
Beispiel #3
0
        private void EmptyEndSession()
        {
            var end = new EndSessionViewModel
            {
                SessionId = PlayerPrefs.GetString("ProbaSessionID"),
                UserId    = PlayerPrefs.GetString("ProbaUserID")
            };

            EndSessionAsync(end);
        }
Beispiel #4
0
 internal static void EndSessionCreated(EndSessionViewModel endSessionViewModel)
 {
     EndSession?.Invoke(endSessionViewModel);
 }
Beispiel #5
0
 private void END_SESSION_EVENT(EndSessionViewModel endSessionViewModel)
 {
     PlayerPrefs.SetInt("ProbaHasOpenSession", 0);
     EndSessionAsync(endSessionViewModel);
 }
Beispiel #6
0
        private void SaveEndSessionInDB(EndSessionViewModel endSessionViewModel)
        {
            var esDB = JsonConvert.SerializeObject(endSessionViewModel);

            DatabaseConnection.InsertUnsentEvent("END_SESSION", esDB);
        }