Task LoadUserInfo() { return(Task.Factory.StartNew(() => { string confirmInfo = ""; RegManager userInfo = new RegManager(); userInfo.Email = loginEntry.Text.Trim(); userInfo.Password = passEntry.Text.Trim(); userInfo.Imei = DependencyService.Get <IDevice>().GetIdentifier(); userInfo.AppVersion = DependencyService.Get <IDevice>().GetVersion(); userInfo.AppKey = RegisterInfo.AppKeys.BonusSeller; try { confirmInfo = MobileStaticVariables.WebUtils.SendAuthRequest("AuthManager", userInfo); if (confirmInfo == "") { throw new Exception("Пустая строка"); } userInfo = JsonConvert.DeserializeObject <RegManager>(confirmInfo); Logger.WriteLine("confirmInfo : " + confirmInfo); if (userInfo.ResultState == RequestResult.Results.Success) { _isUserRegister = true; MobileStaticVariables.UserInfo.MobileDeviceKey = userInfo.MobileDeviceKey; MobileStaticVariables.UserInfo.MobileUserKey = userInfo.MobileUserKey; MobileStaticVariables.UserInfo.UserNickName = userInfo.UserNickName; MobileStaticVariables.UserInfo.NotificationUserTopic = userInfo.NotificationTopic; MobileStaticVariables.UserInfo.UserType = userInfo.UserType; MobileStaticVariables.UserInfo.ShopList = userInfo.ShopList; MobileStaticVariables.UserInfo.Stuff = userInfo.Stuff; MobileStaticVariables.ConectSettings.Certificates[(int)CertificateType.PRIVATE_USER] = new CertificateKey() { Certificate = userInfo.PublicKey, PrivateKey = userInfo.PrivateKey, Port = MobileStaticVariables.ConectSettings.Certificates[(int)CertificateType.BASE_ISSUER].Port, IP = MobileStaticVariables.ConectSettings.Certificates[(int)CertificateType.BASE_ISSUER].IP }; MobileStaticVariables.UserInfo.SaveSetting((int)SettingsEnum.Email, MobileStaticVariables.UserInfo.Email); MobileStaticVariables.UserInfo.SaveSetting((int)SettingsEnum.MobileDeviceKey, MobileStaticVariables.UserInfo.MobileDeviceKey.ToString()); MobileStaticVariables.UserInfo.SaveSetting((int)SettingsEnum.MobileUserKey, MobileStaticVariables.UserInfo.MobileUserKey.ToString()); MobileStaticVariables.UserInfo.SaveSetting((int)SettingsEnum.UserNickName, MobileStaticVariables.UserInfo.UserNickName); MobileStaticVariables.UserInfo.SaveSetting((int)SettingsEnum.UserType, ((int)MobileStaticVariables.UserInfo.UserType).ToString()); MobileStaticVariables.UserInfo.SaveSetting((int)SettingsEnum.PRIVATE_USER_PRIVATE_CERTIFICATE, MobileStaticVariables.ConectSettings.Certificates[(int)CertificateType.PRIVATE_USER].PrivateKey); MobileStaticVariables.UserInfo.SaveSetting((int)SettingsEnum.PRIVATE_USER_CERTIFICATE, MobileStaticVariables.ConectSettings.Certificates[(int)CertificateType.PRIVATE_USER].Certificate); MobileStaticVariables.UserInfo.SaveSetting((int)SettingsEnum.PRIVATE_USER_PRIVATE_IP, MobileStaticVariables.ConectSettings.Certificates[(int)CertificateType.PRIVATE_USER].IP); MobileStaticVariables.UserInfo.SaveSetting((int)SettingsEnum.PRIVATE_USER_PRIVATE_PORT, MobileStaticVariables.ConectSettings.Certificates[(int)CertificateType.PRIVATE_USER].Port.ToString()); MobileStaticVariables.UserInfo.SaveSetting((int)SettingsEnum.ShopList, JsonConvert.SerializeObject(MobileStaticVariables.UserInfo.ShopList)); MobileStaticVariables.UserInfo.SaveSetting((int)SettingsEnum.Stuff, JsonConvert.SerializeObject(MobileStaticVariables.UserInfo.Stuff)); } else { _isUserRegister = false; Device.BeginInvokeOnMainThread(async() => { if (IsVisible) { await DisplayAlert("Внимание", userInfo.TranslateResult(userInfo.ResultState), "Хорошо"); EndLoading(); } }); } } catch (Exception ex) { Logger.WriteError(ex); _isUserRegister = false; Device.BeginInvokeOnMainThread(async() => { if (IsVisible) { var result = await DisplayAlert("Внимание", "Неудалось загрузить необходимые данные", "Повторить регистрацию", "Отмена"); if (result) { LoadData(); } else { EndLoading(); } } }); } finally { Device.BeginInvokeOnMainThread(() => { if (_isUserRegister) { settingsDB.AddLoggedPerson(loginEntry.Text); App.Current.MainPage = new RootPage(); } EndLoading(); }); } })); }