/// <summary>
        /// Authenticates the user asynchronous.
        /// </summary>
        /// <param name="userAccount">The user account.</param>
        /// <returns> The Task. </returns>
        public async Task<AuthenticateUser> RetrieveAuthenticateUserByUserIdAsync(AuthenticateDetail userAccount)
        {
            var task = await this.authenticateUserClient.RetrieveAuthenticateUserByUserIdAsync(JsonConvert.SerializeObject(userAccount), offline: true);
            var authenticationUser = task != null ? JsonConvert.DeserializeObject<AuthenticateUser>(task) : default(AuthenticateUser);

            return await Task.FromResult(authenticationUser);
        }
 public void RetrieveAuthenticateUserByUserIdAsync()
 {
     AuthenticationService authentication = new AuthenticationService();
     AuthenticateDetail userAccount = new AuthenticateDetail();
     userAccount.UserId = "0112";
     userAccount.Password = "******";
     var task = authentication.RetrieveAuthenticateUserByUserIdAsync(userAccount);
     Console.WriteLine("completed");
 }
        public async Task RetrieveAuthenticateUserByUserIdAsync()
        {
            this.SetUpData();
            AuthenticateDetail detail = new AuthenticateDetail { UserId = "6748", Password = "******" };

            var result = await this.targetRepository.RetrieveAuthenticateUserByUserIdAsync(detail);
            Assert.IsNotNull(result);
            Assert.AreNotEqual("200", result.UserUId);
            Assert.IsNotNull(result.UserUId.Equals("2"));
            Assert.AreEqual("Active", result.AuthenticateUserAccount.AccountStatus);
        }
 /// <summary>
 /// Authenticates the user asynchronous.
 /// </summary>
 /// <param name="userAccount">The user account.</param>
 /// <returns>
 /// The Task.
 /// </returns>
 public async Task<AuthenticateUser> RetrieveAuthenticateUserByUserIdAsync(AuthenticateDetail userAccount)
 {
     return await this.authenticationServiceRepository.RetrieveAuthenticateUserByUserIdAsync(userAccount);
 }
 /// <summary>
 /// Authenticates the user asynchronous.
 /// </summary>
 /// <param name="userAccount">The user account.</param>
 /// <returns> The Task. </returns>
 public async Task<AuthenticateUser> RetrieveAuthenticateUserByUserIdAsync(AuthenticateDetail userAccount)
 {
     var task = await new AuthenticateUserClient(string.Empty, new HttpClientHelper()).RetrieveAuthenticateUserByUserIdAsync(JsonConvert.SerializeObject(userAccount), offline: true);
     return task != null ? JsonConvert.DeserializeObject<AuthenticateUser>(task) : default(AuthenticateUser);
 }
        /// <summary>
        /// Function to authentication user
        /// </summary>
        private void AuthenticateUser()
        {
            this.IsNewOfflineUser = false;
            try
            {
                var userAccount = new AuthenticateDetail { UserId = this.logOn.UserName, Password = this.logOn.Password };
                var task = Task.Run(async () => await DIContainer.Instance.Resolve<IAuthenticationService>().RetrieveAuthenticateUserByUserIdAsync(userAccount));
                task.Wait();
                if (!task.IsCanceled && !task.IsFaulted)
                {
                    var authenticateUser = task.Result;
                    if (authenticateUser != null && authenticateUser.AuthenticateUserAccount.AccountStatus.Equals(Active) && authenticateUser.AuthenticateUserAccount.AccountType.Equals(CastMember))
                    {
                        this.workstation.User.UserId = authenticateUser.UserUId;
                        this.workstation.User.UserName = this.logOn.UserName;
                        this.workstation.User.Password = this.LogOn.Password;
                        this.OnAuthenticateUserComplete();
                    }
                    else
                    {
                        this.IsBusy = false;
                        this.IsAuthenticated = false;

                        if (!this.workstation.IsNetworkAvailable)
                        {
                            this.IsNewOfflineUser = true;
                        }
                    }
                }
                else
                {
                    this.IsBusy = false;
                    this.IsAuthenticated = false;
                }
            }
            catch (Exception ex)
            {
                this.IsBusy = false;
                this.IsAuthenticated = false;
                if (this.workstation.IsNetworkAvailable)
                {
                    LogManager.Write(ex.InnerException);
                }
                else if (ex.InnerException.Source == "JWT")
                {
                    // do nothing
                }
                else
                {
                    ex.ThrowOnDispatcher();
                }
            }
        }
 /// <summary>
 /// Authenticates the user asynchronous.
 /// </summary>
 /// <param name="userAccount">The user account.</param>
 /// <returns>
 /// The Task.
 /// </returns>
 public async Task<AuthenticateUser> RetrieveAuthenticateUserByUserIdAsync(AuthenticateDetail userAccount)
 {
     return await GangwayRepositoryFactory.Retrieve().RetrieveAuthenticateUserByUserIdAsync(userAccount);
 }