Example #1
0
        public async override Task <LoginResultVM> RunAsync(ValidateUserLoginCmd process,
                                                            CancellationToken cancellationToken = default)
        {
            try
            {
                string firebaseToken = p_TasqR.Run(new FindMyFirebaseTokenQr());

                var loginRequest = new LoginRequestVM {
                    Username = process.Username, Password = process.Password, FirebaseToken = firebaseToken
                };

                var httpResponse = await p_HttpClient.PostAsync <UserSessionBO, LoginRequestVM>(APIUriConstants.AccessToken, loginRequest, cancellationToken);

                if (!httpResponse.IsSuccessStatusCode)
                {
                    throw new LynxException(httpResponse.StringContent);
                }

                var dbUserSession = new UserSession
                {
                    UserID = httpResponse.ObjectContent.UserData.ID,
                    Token  = httpResponse.ObjectContent.Token
                };

                p_UserSessionDbSet.Add(dbUserSession);
                p_BaseDbContext.SaveChanges();

                return(new LoginResultVM
                {
                    IsSuccess = true
                });
            }
            catch (Exception ex)
            {
                p_ExceptionHandler.LogError(ex);

                return(new LoginResultVM
                {
                    IsSuccess = false,
                    Error = ex.InnermostException()
                });
            }
        }
        public async override Task <UserSessionBO> RunAsync(GetActiveUserSessionQr request, CancellationToken cancellationToken = default)
        {
            string firebaseToken = p_TasqR.Run(new FindMyFirebaseTokenQr());

            var verifResult = await p_LynxAPI.PostAsync <TokenVerificationResult, string>
                              (
                "/AccessToken/VerifyValidity",
                firebaseToken,
                cancellationToken
                              );

            if (verifResult.ObjectContent.TokenStatus != TokenStatus.Active)
            {
                return(null);
            }

            var token = await p_TasqR.RunAsync(new GetTokenCmd(p_AppUser.UserID));

            return(token);
        }