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);
            }
        }
Esempio n. 3
0
        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());
                }
            }
        }
Esempio n. 5
0
        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);
        }