private void ConfirmedDeleteSelectedItemsClick(object parameter) { IEnumerable <string> selectedIds = selectedItems.Select(x => x.Id); if (selectedIds == null) { return; } Task.Factory.StartNew(() => { bool logged = false; Parallel.ForEach(selectedIds, (id) => { var selectedItem = pbData.GetSecureItemById(id); if (selectedItem != null) { SecureItem secureItem = null; selectedItem.Active = false; if ((secureItem = pbData.AddOrUpdateSecureItem(selectedItem)) == null) { DeleteSelectedItemsMessageBoxVisibility = false; Application.Current.Dispatcher.BeginInvoke(new Action(() => { MessageBox.Show((string)Application.Current.FindResource("GeneralErrorText")); })); } else { ShareCommon shareCommon = new ShareCommon(resolver); shareCommon.UpdateShares(secureItem); } if (!logged) { logged = true; // inAppAnalyitics.Log(new PasswordVaultItem(SecureItemAction.Deleted, ApplicationSource.MainUI)); } } }); Application.Current.Dispatcher.BeginInvoke(new Action(() => { DeletionFinished(); })); }); }
private void AddEmailToPI() { var SelectedCategory = new Folder(); SelectedCategory.Id = DefaultCategories.CategoryEmail; SelectedCategory.Name = DefaultCategories.CategoryEmail; SecureItem secureItem = new SecureItem() { SecureItemTypeName = DefaultProperties.SecurityItemType_PersonalInfo, Name = pbData.ActiveUser, Type = SecurityItemsDefaultProperties.SecurityItemSubType_PI_Email, Data = new SecureItemData() { email = pbData.ActiveUser, notes = "" }, Folder = SelectedCategory }; bool isExisting = pbData.IsSecureItemExistingBySimpleRule(pbData.ActiveUser, SecurityItemsDefaultProperties.SecurityItemSubType_PI_Email); if (!isExisting) { pbData.AddOrUpdateSecureItem(secureItem); } }
private void AddEmailToPI() { SecureItem secureItem = new SecureItem() { SecureItemTypeName = DefaultProperties.SecurityItemType_PersonalInfo, Name = pbData.ActiveUser, Type = DefaultProperties.SecurityItemSubType_PI_Email, Order = 0, Data = new SecureItemData() { email = pbData.ActiveUser, notes = "" } }; bool isExisting = pbData.IsSecureItemExistingBySimpleRule(pbData.ActiveUser, SecurityItemsDefaultProperties.SecurityItemSubType_PI_Email); if (!isExisting) { pbData.AddOrUpdateSecureItem(secureItem); } }
private void StoreInput() { if (!string.IsNullOrEmpty(firstName) || !string.IsNullOrEmpty(lastName)) { var siName = new SecureItem() { SecureItemTypeName = DefaultProperties.SecurityItemType_PersonalInfo, Type = DefaultProperties.SecurityItemSubType_PI_Names }; try { if (siName.Data == null) { siName.Data = new SecureItemData(); } siName.Data.firstName = firstName; siName.Data.lastName = lastName; siName.Name = String.Format("{0} {1}", firstName, lastName); //siName.Category = new Category() { Id = DefaultCategories.CategoryNames }; siName = pbData.AddOrUpdateSecureItem(siName); pbData.ChangePrivateSetting(PI_NAME_KEY, JsonConvert.SerializeObject(siName, Formatting.None, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore })); UserInfo ui = pbData.GetUserInfo(pbData.ActiveUser); ui.FirstName = firstName; ui.LastName = lastName; pbData.UpdateUserInfo(ui); api.UpdateAccount(pbData.ActiveUser + "|" + pbData.DeviceUUID, new PasswordBoss.WEBApiJSON.AccountRequest { first_name = firstName, last_name = lastName }); } catch (Exception ex) { logger.Error(ex.ToString()); } } if (!string.IsNullOrEmpty(address)) { var siAddress = new SecureItem() { SecureItemTypeName = DefaultProperties.SecurityItemType_PersonalInfo, Type = DefaultProperties.SecurityItemSubType_PI_Address }; try { siAddress.SecureItemTypeName = DefaultProperties.SecurityItemType_PersonalInfo; siAddress.Type = DefaultProperties.SecurityItemSubType_PI_Address; siAddress.Name = address; if (siAddress.Data == null) { siAddress.Data = new SecureItemData(); } siAddress.Data.address1 = address; siAddress.Data.city = city; siAddress.Data.zipCode = zip; siAddress.Data.state = state; // TODO: are we need it? //siAddress.Data.country = PIAddressCountry.Value.Key; siAddress = pbData.AddOrUpdateSecureItem(siAddress); pbData.ChangePrivateSetting(PI_ADDRESS_KEY, JsonConvert.SerializeObject(siAddress, Formatting.None, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore })); } catch (Exception ex) { logger.Error(ex.ToString()); } } }
private bool SaveSecureItem(SecureItemShare sharedSecureItem, out string secureItemId) { secureItemId = null; try { SecureItem si = new SecureItem(); si.SecureItemTypeName = sharedSecureItem.secure_item_type_name; si.Type = sharedSecureItem.type; si.Folder = categoryList.FirstOrDefault(x => x.Id == sharedSecureItem.category_id); si.Data = sharedSecureItem.data; si.Name = sharedSecureItem.name; si.Color = sharedSecureItem.color; si.LoginUrl = sharedSecureItem.login_url; si.Favorite = sharedSecureItem.favorite; if (si.Folder == null) { si.Folder = new Folder() { Name = sharedSecureItem.category_name }; } if (si.SecureItemTypeName == DefaultProperties.SecurityItemType_PasswordVault) { if (!sharedSecureItem.site_url.Contains("http") && !sharedSecureItem.site_url.Contains("https")) { sharedSecureItem.site_url = "http://" + sharedSecureItem.site_url; } //Uri siteUrl = new Uri(sharedSecureItem.site_url); //var parts = siteUrl.Host.Split('.'); si.Site = new Site(); var siteId = pbData.GetSiteIdByUriFullSearch(new Uri(sharedSecureItem.site_url)); if (siteId == null) { //TODO: Call service to retreive from server string uuid = pbSync.RegisterSite(new Uri(sharedSecureItem.site_url)); if (uuid != null) { siteId = pbData.GetSiteIdByUUID(uuid); } } si.Site.Id = siteId; } else { si.Data.password_visible_recipient = null; } si = pbData.AddOrUpdateSecureItem(si); if (si.Id != null) { secureItemId = si.Id; return(true); } else { return(false); } } catch (Exception ex) { } return(false); }