protected async override void OnAppearing() { listView.SelectedItem = null; MyProfileViewModel.Instance.ErrorMessage = ""; stkOveryLay.IsVisible = true; base.OnAppearing(); GetPhoto(); GetProfile(); if (MyProfileViewModel.Instance.List == null || MyProfileViewModel.Instance.List.Count == 0) { var contributions = await MvpService.GetContributions(-5, 10, LogOnViewModel.StoredToken); MvpHelper.SetContributionInfoToProfileViewModel(contributions); listView.HeightRequest = MyProfileViewModel.Instance.List.Count * 50; } if (string.Compare(CommonConstants.DefaultNetworkErrorString, MyProfileViewModel.Instance.ErrorMessage, StringComparison.OrdinalIgnoreCase) == 0) { MyProfileViewModel.Instance.StoreImageBase64Str = CommonConstants.DefaultPhoto; MyProfileViewModel.Instance.ErrorMessage = CommonConstants.DefaultNetworkErrorString; } stkOveryLay.IsVisible = false; }
private async void TabGesture_Tapped(object sender, EventArgs e) { if (LoginViewModel.Instance.IsLoggedIn) { try { var profile = await MvpService.GetProfile(LoginViewModel.StoredToken); MvpHelper.SetDataToProfileViewModel(profile); if (string.IsNullOrEmpty(MyProfileViewModel.Instance.StoreImageBase64Str)) { MyProfileViewModel.Instance.StoreImageBase64Str = await MvpService.GetPhoto(LoginViewModel.StoredToken); } } catch (Exception ex) { MyProfileViewModel.Instance.StoreImageBase64Str = CommonConstants.DefaultPhoto; MyProfileViewModel.Instance.ErrorMessage = ex.Message; } await Navigation.PushModalAsync(new MyProfile()); } else { await Navigation.PushModalAsync(new LiveIdLogin()); } }
protected async override void OnAppearing() { base.OnAppearing(); if (MyProfileViewModel.Instance.IsBusy) { return; } MyProfileViewModel.Instance.ErrorMessage = ""; MyProfileViewModel.Instance.IsBusy = true; GetPhoto(); GetProfile(); if (MyProfileViewModel.Instance.List == null || MyProfileViewModel.Instance.List.Count == 0) { var contributions = await MvpHelper.MvpService.GetContributions(-5, 10, LogOnViewModel.StoredToken); MvpHelper.SetContributionInfoToProfileViewModel(contributions); } if (string.Compare(CommonConstants.DefaultNetworkErrorString, MyProfileViewModel.Instance.ErrorMessage, StringComparison.OrdinalIgnoreCase) == 0) { MyProfileViewModel.Instance.StoreImageBase64Str = CommonConstants.DefaultPhoto; MyProfileViewModel.Instance.ErrorMessage = CommonConstants.DefaultNetworkErrorString; } MyProfileViewModel.Instance.IsBusy = false; }
private async void Browser_Navigating(object sender, WebNavigatingEventArgs e) { try { Uri liveUrl = new Uri(e.Url, UriKind.Absolute); if (liveUrl.AbsoluteUri.Contains("code=")) { if (Settings.GetSetting(CommonConstants.AuthCodeKey) != string.Empty) { MvpHelper.RemoveProperties(); } var regex = new System.Text.RegularExpressions.Regex("code=([^&]+)", System.Text.RegularExpressions.RegexOptions.IgnoreCase); string auth_code = regex.Match(liveUrl.AbsoluteUri).Groups[1].Value; Settings.SetSetting(CommonConstants.AuthCodeKey, auth_code); await LiveIdLogOnViewModel.Instance.GetAccessToken(); var profileTest = await MvpHelper.MvpService.GetProfile(LogOnViewModel.StoredToken); if (profileTest == null || profileTest.MvpId == 0) { Logger.Log("Login-Invalid"); await DisplayAlert(string.Empty, TranslateServices.GetResourceString(CommonConstants.DialogDescriptionForInvalidCredentials), TranslateServices.GetResourceString(CommonConstants.DialogOK)); App.CookieHelper.ClearCookie(); LiveIdLogOnViewModel.Instance.SignOut(); await Navigation.PopModalAsync(true); } else { Logger.Log("Login-Valid"); switch (Device.RuntimePlatform) { case Device.iOS: Application.Current.MainPage = new MainTabPageiOS(); break; default: Application.Current.MainPage = new MVPNavigationPage(new MainTabPage()) { Title = "Microsoft MVP" }; break; } } } } catch (Exception exp) { UserDialogs.Instance.Alert(exp.Message); App.CookieHelper.ClearCookie(); LiveIdLogOnViewModel.Instance.SignOut(); await Navigation.PushModalAsync(new LogOn()); } }
public void SignOut() { MvpHelper.RemoveProperties(); LogOnViewModel.StoredToken = string.Empty; MyProfileViewModel.Instance.FirstAwardValue = string.Empty; MyProfileViewModel.Instance.PersonName = string.Empty; MyProfileViewModel.Instance.AwardCategoriesValue = string.Empty; MyProfileViewModel.Instance.Description = string.Empty; MyProfileViewModel.Instance.AwardsCountValue = string.Empty; MyProfileViewModel.Instance.StoreImageBase64Str = null; MyProfileViewModel.Instance.List = new ObservableRangeCollection <Models.ContributionModel>(); }
public ProfileViewCell() { InitializeComponent(); this.btnAdd.Clicked += BtnAdd_Clicked; if (MvpHelper.IsiOSApp()) { btnAdd.WidthRequest = 130; } else { btnAdd.WidthRequest = 170; } }
public void SignOut() { //Application.Current.Properties.Clear(); MvpHelper.RemoveProperties(); LogOnViewModel.StoredToken = string.Empty; MyProfileViewModel.Instance.FirstAwardValue = string.Empty; MyProfileViewModel.Instance.PersonName = string.Empty; MyProfileViewModel.Instance.AwardCategoriesValue = string.Empty; MyProfileViewModel.Instance.Description = string.Empty; MyProfileViewModel.Instance.AwardsCountValue = string.Empty; MyProfileViewModel.Instance.StoreImageBase64Str = null; MyProfileViewModel.Instance.List = new System.Collections.ObjectModel.ObservableCollection <Models.ContributionModel>(); }
private async void Browser_Navigating(object sender, WebNavigatingEventArgs e) { Uri liveUrl = new Uri(e.Url, UriKind.Absolute); if (liveUrl.AbsoluteUri.Contains("code=")) { if (Settings.GetSetting(CommonConstants.AuthCodeKey) != string.Empty) { MvpHelper.RemoveProperties(); } string auth_code = System.Text.RegularExpressions.Regex.Split(liveUrl.AbsoluteUri, "code=")[1]; Settings.SetSetting(CommonConstants.AuthCodeKey, auth_code); await LiveIdLogOnViewModel.Instance.GetAccessToken(); var profileTest = await MvpHelper.MvpService.GetProfile(LogOnViewModel.StoredToken); if (profileTest == null || string.IsNullOrWhiteSpace(profileTest.DisplayName)) { Logger.Log("Login-Invalid"); await DisplayAlert(string.Empty, "Unable to validate MVP status, please login again with your MVP credentials.", "OK"); App.CookieHelper.ClearCookie(); LiveIdLogOnViewModel.Instance.SignOut(); await Navigation.PopModalAsync(true); } else { Logger.Log("Login-Valid"); switch (Device.RuntimePlatform) { case Device.iOS: Application.Current.MainPage = new MainTabPageiOS(); break; default: Application.Current.MainPage = new MVPNavigationPage(new MainTabPage()) { Title = "Microsoft MVP" }; break; } } } }
private async void OnLoadMoreClicked(object sender, EventArgs e) { int start = MyProfileViewModel.Instance.List.Count; var contributionInfo = await MvpHelper.MvpService.GetContributions(start, 5, LogOnViewModel.StoredToken); if (contributionInfo != null && contributionInfo.Contributions != null && contributionInfo.Contributions.Count > 0) { var contributors = contributionInfo.Contributions.Select(c => { MvpHelper.SetLabelTextOfContribution(c); return(c); }); MyProfileViewModel.Instance.List.AddRange(contributors); MyProfileViewModel.Instance.TotalOfData = contributionInfo.TotalContributions; } }
public void SignOut() { MvpHelper.RemoveProperties(); if (Application.Current.Properties.ContainsKey(CommonConstants.ProfileCacheListKey)) { Application.Current.Properties.Remove(CommonConstants.ProfileCacheListKey); } LogOnViewModel.StoredToken = string.Empty; MyProfileViewModel.Instance.FirstAwardValue = string.Empty; MyProfileViewModel.Instance.PersonName = string.Empty; MyProfileViewModel.Instance.AwardCategoriesValue = string.Empty; MyProfileViewModel.Instance.Description = string.Empty; MyProfileViewModel.Instance.AwardsCountValue = string.Empty; MyProfileViewModel.Instance.StoreImageBase64Str = null; MyProfileViewModel.Instance.List = new ObservableRangeCollection <Models.ContributionModel>(); }
private async void Browser_Navigating(object sender, WebNavigatingEventArgs e) { Uri liveUrl = new Uri(e.Url, UriKind.Absolute); if (liveUrl.AbsoluteUri.Contains("code=")) { if (Application.Current.Properties.ContainsKey(CommonConstants.AuthCodeKey)) { //Application.Current.Properties.Clear(); MvpHelper.RemoveProperties(); } string auth_code = System.Text.RegularExpressions.Regex.Split(liveUrl.AbsoluteUri, "code=")[1]; Application.Current.Properties.Add(CommonConstants.AuthCodeKey, auth_code); await LiveIdLogOnViewModel.Instance.GetAccessToken(); await Navigation.PushModalAsync(new MyProfile()); } }
private async void makeAccessTokenRequest(string requestUrl) { HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest; string responseTxt = String.Empty; using (HttpWebResponse response = await request.GetResponseAsync() as HttpWebResponse) { var reader = new StreamReader(response.GetResponseStream()); responseTxt = reader.ReadToEnd(); var tokenData = JsonConvert.DeserializeObject <Dictionary <string, string> >(responseTxt); if (tokenData.ContainsKey("access_token")) { App.Current.Properties.Add("access_token", tokenData["access_token"]); LoginViewModel.StoredToken = tokenData["access_token"]; // refresh token App.Current.Properties.Add("refresh_token", tokenData["refresh_token"]); // testing refresh token // var ret = await GetNewAccessToken(); var profile = await MvpService.GetProfile(LoginViewModel.StoredToken); MvpHelper.SetDataToProfileViewModel(profile); var photobase64Str = await MvpService.GetPhoto(LoginViewModel.StoredToken); LoginViewModel.StoreImageBase64Str = photobase64Str; var myprofileView = new MyProfile(); myprofileView.SetPhoto(photobase64Str); await Navigation.PushModalAsync(myprofileView); Application.Current.Properties[CommonConstants.TokenKey] = string.Format("{0},{1}", LoginViewModel.StoredToken, DateTime.Now); } } }
public async void ButtonSaveClicked(object sender, EventArgs e) { IProgressDialog progress = null; try { bool isValid = CheckData(); if (!isValid) { return; } if (!CrossConnectivity.Current.IsConnected) { await UserDialogs.Instance.AlertAsync("Please check connectivity to submit activity.", "Check Connectivity", "OK"); return; } IsBusy = true; progress = UserDialogs.Instance.Loading("Saving...", maskType: MaskType.Clear); progress.Show(); if (ViewModel.MyContribution == null) { var model = new ContributionModel() { ContributionId = "0", ContributionType = ViewModel.ContributionTypeNames[contributionTypeSelector.SelectedIndex], ContributionTechnology = ViewModel.ContributionAreas[ContributionAreaSelector.SelectedIndex], Visibility = ViewModel.PersonGroups[PersonGroupSelector.SelectedIndex], StartDate = ContributionDateSelector.Date.ToUniversalTime(), Title = entryTitle.Text, ReferenceUrl = entryURL.Text, Description = entryDescription.Text, AnnualQuantity = Convert.ToInt32(entryAnnualQuantity.Text, System.Globalization.CultureInfo.InvariantCulture), AnnualReach = Convert.ToInt32(entryAnnualReach.Text, System.Globalization.CultureInfo.InvariantCulture), SecondAnnualQuantity = Convert.ToInt32(entrySecondAnnualQuantity.Text, System.Globalization.CultureInfo.InvariantCulture) }; var result = await MvpHelper.MvpService.AddContributionModel(model, LogOnViewModel.StoredToken); if (result != null && result.ContributionId != "0") { Logger.Log("Activity-Added"); MvpHelper.SetLabelTextOfContribution(result); MyProfileViewModel.Instance.List.Insert(0, result); MyProfileViewModel.Instance.TotalOfData += 1; } else { return; } } else { ViewModel.MyContribution.ContributionType = ViewModel.ContributionTypeNames[contributionTypeSelector.SelectedIndex]; ViewModel.MyContribution.ContributionTechnology = ViewModel.ContributionAreas[ContributionAreaSelector.SelectedIndex]; ViewModel.MyContribution.Visibility = ViewModel.PersonGroups[PersonGroupSelector.SelectedIndex]; ViewModel.MyContribution.StartDate = ContributionDateSelector.Date.ToUniversalTime(); ViewModel.MyContribution.AnnualQuantity = Convert.ToInt32(entryAnnualQuantity.Text, System.Globalization.CultureInfo.InvariantCulture); ViewModel.MyContribution.AnnualReach = Convert.ToInt32(entryAnnualReach.Text, System.Globalization.CultureInfo.InvariantCulture); ViewModel.MyContribution.SecondAnnualQuantity = Convert.ToInt32(entrySecondAnnualQuantity.Text, System.Globalization.CultureInfo.InvariantCulture); string result = await MvpHelper.MvpService.EditContributionModel(ViewModel.MyContribution, LogOnViewModel.StoredToken); if (result == CommonConstants.OkResult) { Logger.Log("Activity-Edit"); MyProfileViewModel.Instance.List = new ObservableRangeCollection <ContributionModel>(MyProfileViewModel.Instance.List); } else { var currentContribution = MyProfileViewModel.Instance.List.Where(item => item.ContributionId == ViewModel.MyContribution.ContributionId).FirstOrDefault(); int index = MyProfileViewModel.Instance.List.IndexOf(currentContribution); MyProfileViewModel.Instance.List.Remove(currentContribution); MyProfileViewModel.Instance.List.Insert(index, ViewModel.MyContributionBackup); return; } } ViewModel.MyContribution = null; #if DEBUG await Task.Delay(3000); #endif progress?.Hide(); await UserDialogs.Instance.AlertAsync("MVP activity has been saved successfully. Thank you for your contribution.", "Saved!", "OK"); await Navigation.PopModalAsync(); } catch (Exception ex) { progress?.Hide(); ViewModel.ErrorMessage = ex.Message; await UserDialogs.Instance.AlertAsync("Looks like something went wrong. Please check your connection and submit again. Error: " + ex.Message, "Unable to save", "OK"); } finally { if (progress?.IsShowing ?? false) { progress?.Hide(); } IsBusy = false; } }