Пример #1
0
        /// <summary>
        /// Gets user's profile info if authorized.
        /// </summary>
        /// <returns>Task.</returns>
        async Task getProfileInfo()
        {
            try {
                if (!_services.Preferences.IsLoggedIn)
                {
                    return;
                }

                var username = _services.Preferences.UserLogin;

                if (string.IsNullOrEmpty(username))
                {
                    return;
                }

                var profile = await DataAccess.GetProfileInfo(username);

                AppUserData.SetLoginData(_services, _services.Preferences.UserId, username);
                AppUserData.SetProfileData(_services, profile);
                _services.Preferences.GroupName = profile?.GroupName;
                _services.Preferences.Avatar    = profile?.Avatar;
            } catch (Exception ex) {
                AppLogs.Log(ex);
            }
        }
        /// <summary>
        /// Gets user data (username and user's id) by provided credentials and saves it.
        /// </summary>
        /// <returns><see cref="UserModel"/> on success, <code>null</code> otherwise.</returns>
        async Task <UserModel> loginRequest()
        {
            var userLogin = await DataAccess.Login(Username, Password);

            if (userLogin != null)
            {
                AppUserData.SetLoginData(_services, userLogin.UserId, userLogin.Username);
            }

            return(userLogin);
        }
        /// <summary>
        /// Gets user data (username and user's id) by provided credentials and saves it.
        /// </summary>
        /// <returns><see cref="UserModel"/> on success, <code>null</code> otherwise.</returns>
        async Task <UserModel> loginRequest()
        {
            var userLogin = await DataAccess.Login(Username, Password);

            if (_services.Preferences.Server == Servers.EduCatsAddress)
            {
                if (userLogin != null)
                {
                    var jwt = new
                    {
                        password = Password,
                        userName = Username,
                    };
                    var body           = JsonController.ConvertObjectToJson(jwt);
                    var httpWebRequest = (HttpWebRequest)WebRequest.Create(Links.LoginTestServer);
                    httpWebRequest.ContentType = "application/json";
                    httpWebRequest.Method      = "POST";
                    using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                    {
                        string json = body;

                        streamWriter.Write(json);
                        streamWriter.Flush();
                        streamWriter.Close();
                    }
                    var tok          = "";
                    var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                    {
                        string line = "";
                        while ((line = streamReader.ReadLine()) != null)
                        {
                            tok += line;
                        }
                    }
                    var token = JsonConvert.DeserializeObject <TokenModel>(tok);
                    _services.Preferences.AccessToken = token.Token;
                    SecondUserModel userLoginTest = await DataAccess.LoginTest(Username, Password);

                    userLogin.UserId   = userLoginTest.Id;
                    userLogin.Username = userLoginTest.Username;
                }
            }
            AppUserData.SetLoginData(_services, userLogin.UserId, userLogin.Username);
            return(userLogin);
        }
Пример #4
0
 public void SetLoginDataTest()
 {
     AppUserData.SetLoginData(_mocked, _userId, _username);
     Assert.AreEqual(_userId, AppUserData.UserId);
     Assert.AreEqual(_username, AppUserData.Username);
 }