public LoginPage() { InitializeComponent(); LoginCell.Command = new Command(async() => { var username = UsernameEntry.Text; var password = PasswordEntry.Text; var result = await QuantiServer.Login(username, password); if (result) { await Navigation.PopModalAsync(); } else { await DisplayAlert("Login Failed!", "Please verify the inserted fields and try again.", "OK"); } }); SignupCell.Command = new Command(() => { Device.OpenUri(new Uri(QuantiServer.SignupURL)); }); }
public RemoteHistoryPage() { InitializeComponent(); HistoryListView.ItemsSource = RemoteLog; HistoryListView.ItemSelected += (sender, e) => { if (e.SelectedItem == null) { return; } var il = (RemoteInteractionLog)e.SelectedItem; Navigation.PushAsync(new PastSharedInteractionPage(il)); HistoryListView.SelectedItem = null; }; QuantiServer.GetSharedInteractions().ContinueWith((arg) => { foreach (var il in arg.Result) { RemoteLog.Add(il); } }); }
private async void SaveInteraction() { if (SelectedTeamMember == null) { await DisplayAlert("Missing Fields!", "You must select a team member!", "OK"); return; } if (Rating == 0) { await DisplayAlert("Missing Fields!", "A rating is required.", "OK"); return; } var date = DateTimeOffset.UtcNow; date.AddSeconds(ElapsedTime * -1); InteractionLog il = new InteractionLog { Member = SelectedTeamMember, ElapsedTime = ElapsedTime, Rating = Rating, Note = NotesEditor.Text, Date = date, Shared = LocalSettings.AutomaticallyShareNotes }; var identifier = await QuantiServer.PublishInteractionResult(il).ConfigureAwait(true); if (identifier == null) { await DisplayAlert("Error!", "Unable to contact the QuantiDev server. This interaction will only be saved locally.", "OK"); return; } else { il.RemoteIdentifier = identifier; } LocalRealmInstance.Write(() => { LocalRealmInstance.Add(il); Navigation.PopAsync(); System.Diagnostics.Debug.WriteLine("Saved!"); }); }
private async void LogOut(object sender, EventArgs e) { var answer = await DisplayAlert("Log Out", "Are you sure you want to log out from InteractDev?", "Log Out", "Cancel"); if (answer) { QuantiServer.DeleteSavedProperties(); LocalSettings.DeleteSavedProperties(); var realm = Realm.GetInstance(); realm.Write(() => { realm.RemoveAll(); }); await Navigation.PushModalAsync(new NavigationPage(new LoginPage())); } }
public static async Task <bool> UpdateLocalInteractionNotes() { var interactions = await QuantiServer.DownloadInteractionNotes(); if (interactions == null) { return(false); } using (var realm = Realm.GetInstance()) { foreach (var interaction in interactions) { var exists = realm.All <InteractionLog>().Where(il => il.RemoteIdentifier == interaction.identifier).Count() != 0; if (!exists) { var members = realm.All <TeamMember>().Where(tm => tm.Identifier == interaction.intervenient.id); if (members.Count() == 0) { continue; // Meh. Do not even bother! } realm.Write(() => { realm.Add(new InteractionLog { RemoteIdentifier = interaction.identifier, ElapsedTime = interaction.duration, Shared = interaction.shared, Rating = interaction.rating, Note = interaction.notes, Date = interaction.StartDateOffset, Member = members.First() }); }); } } } return(true); }
public async void DeleteInteraction(object sender, EventArgs e) { System.Diagnostics.Debug.WriteLine("Tapped delete interaction!"); var answer = await DisplayAlert("Delete Interaction", "Are you sure you want to delete the current interaction?", "Delete", "Cancel"); if (answer) { await QuantiServer.DeleteInteractionNotes(Log); using (var realm = Realm.GetInstance()) { realm.Write(() => { realm.Remove(Log); }); } await Navigation.PopAsync(); } }
public void ToggleShare(object sender, EventArgs e) { QuantiServer.UpdateInteractionPrivacy(Log).ContinueWith((arg) => { }); }
public static async Task <bool> UpdateLocalTeamMembers() { using (var realm = Realm.GetInstance()) { var members = await QuantiServer.GetTeamMembers(); if (members == null) { return(false); } foreach (var m in members) { if (m.username == QuantiServer.Username) // Don't add self! { continue; } var objs = realm.All <TeamMember>().Where(tm => tm.Identifier == m.id); if (objs.Count() == 0) { // The team member does not exist in the database... realm.Write(() => { realm.Add(new TeamMember { Identifier = m.id, Name = m.name, Username = m.username }); }); } else { // The team member exists... var fo = objs.First(); if (fo.Name != m.name) { // But has changed their name! realm.Write(() => { fo.Name = m.name; }); } } } // Now, disabling all the (old) team members, and re-enabling // everyone who may have come back... (Hey, welcome back!) var allSaved = realm.All <TeamMember>(); foreach (var saved in allSaved) { bool found = false; foreach (var current in members) { if (current.id == saved.Identifier) { found = true; break; } } realm.Write(() => { saved.IsCurrentlyMember = found; }); } return(true); } }