Exemplo n.º 1
0
        /// <summary>
        /// Login the user.
        /// </summary>
        public async Task <bool> VerifyLogin(string UserID, string Password, string MacAddr)
        {
            var param    = new VerifyLoginRM(UserID, Password, MacAddr);
            var response = await _sgService
                           .VerifyLogin(Priority.UserInitiated, param)
                           .ConfigureAwait(false);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var responseDto    = new LoginResponseDTO();
                var responseString = response.Content.ReadAsStringAsync().Result;
                responseDto = JsonConvert.DeserializeObject <LoginResponseDTO>(responseString);

                Globals.LoginStatus   = LoginStatusType.Success;
                Globals.LoginUsername = responseDto.USER_ID;
                Globals.UserType      = responseDto.USER_TYPE;
                Globals.UserMessage   = responseDto.User_Msg;

                return(true);
            }
            else if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
            {
                Globals.LoginStatus      = LoginStatusType.LoginError;
                Globals.ErrorTitle       = "Error";
                Globals.ErrorDescription = "Not Found";

                return(true);
            }

            return(false);
        }
Exemplo n.º 2
0
        public async Task <HttpResponseMessage> VerifyLogin(Priority priority, VerifyLoginRM param)
        {
            HttpResponseMessage        response = null;
            Task <HttpResponseMessage> loginTask;

            switch (priority)
            {
            case Priority.Background:
                loginTask = _apiService.Background.VerifyLogin(param);
                break;

            case Priority.UserInitiated:
                loginTask = _apiService.UserInitiated.VerifyLogin(param);
                break;

            case Priority.Speculative:
                loginTask = _apiService.Speculative.VerifyLogin(param);
                break;

            default:
                loginTask = _apiService.UserInitiated.VerifyLogin(param);
                break;
            }

            if (CrossConnectivity.Current.IsConnected)
            {
                response = await Policy
                           .Handle <Exception>()
                           .WaitAndRetryAsync
                           (
                    retryCount: 5,
                    sleepDurationProvider: retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))
                           )
                           .ExecuteAsync(async() => await loginTask);
            }

            return(response);
        }