public ContactDetail(SettingsCapsula settings, SearchCServerCapsula user, App app) { InitializeComponent(); this.settings = settings; this.app = app; using (Context context = new Context(settings.Config)) { var tryContact = context.Contacts .Where(u => u.PublicId == user.UserId) .SingleOrDefault(); if (tryContact != null) { throw new Exception("This user is already saved"); } } Adding = true; Contacts contact = new Contacts() { PublicId = user.UserId, UserName = user.UserName, AlarmPermission = 0, NickName = null, Trusted = 0, SendAesKey = null, PublicCertificate = user.PemCertificate, ReceiveAesKey = null }; LoadContact(contact); }
private void SearchContact() { SearchCClientCapsula searchCapsula = TextEncoder.ReadJson <SearchCClientCapsula>(stream); SearchCServerCapsula ret; using (Context context = new Context(config)) { ret = new SearchCServerCapsula(context.Users .Where(u => u.Id == searchCapsula.UserId) .SingleOrDefault()); if (!ret.Succeeded) { ret = new SearchCServerCapsula(context.Users .Where(u => u.UserName == searchCapsula.UserName) .SingleOrDefault()); } if (!ret.Succeeded) { ret = new SearchCServerCapsula(context.Users .Where(u => u.PublicCertificateSha256 == searchCapsula.CertificateHash) .SingleOrDefault()); } } TextEncoder.SendJson(stream, ret); }
private async void start_Clicked(object sender, EventArgs e) { try { SearchCServerCapsula capsula = null; using (LoadingLock theLock = new LoadingLock(this, "Trying to find the user...")) { await Task.Run(() => { if (userNameEntry.Text == null || !Validators.ValidateRegexUserName(userNameEntry.Text)) { if (int.TryParse(publicIdEntry.Text, out int publicId)) { capsula = app.connection.SearchContact(publicId); } else { return; } } else { capsula = app.connection.SearchContact(userNameEntry.Text); } }); } if (capsula == null) { ShowError("Parsing input", "Public id nor username isn't correct."); return; } if (!capsula.Succeeded) { ShowError("Searching user", "User not found"); } else { await Navigation.PopModalAsync(); await app.MainPage.Navigation.PushModalAsync(new NavigationPage(new ContactDetail(app.settings, capsula, app))); } } catch (Exception ex) { app.logger.LogException(this, ex); ShowError(ex.Source, ex.Message); } }
static void SaveUser(SearchCServerCapsula searchCapsula) { using (Context context = new Context(config)) { CContact contact = new CContact() { AlarmPermission = false, NickName = null, PublicCertificate = searchCapsula.PemCertificate, PublicId = searchCapsula.UserId, ReceiveAesKey = null, SendAesKey = null, Trusted = false, UserName = searchCapsula.UserName }; PushOperations.Insert(context, contact, settings.UserPublicId, settings.UserPublicId); } }
static void PrintSearchCapsula(SearchCServerCapsula searchCapsula) { WriteLine($"UserId: {searchCapsula.UserId}"); WriteLine($"UserName: {searchCapsula.UserName}"); WriteLine($"Certificate SHA-256 hash: {SHA256Utils.ComputeCertHash(searchCapsula.PemCertificate)}"); }