public JsonResult GetNodeItems(string parentId) { var treeNodes = new List <TreeNode>(); using (var masterPassword = SessionContext.GetMasterPassword()) { var currentVault = SessionContext.GetCurrentVaultName(); var vaultRepository = VaultRepositoryFactory.CreateInstance(); var vault = vaultRepository.GetVault(currentVault, masterPassword); if (parentId == "#") { //Root treeNodes.AddRange(vault.Groups.Select(group => CreateTreeNode(group.Id.ToString(), group.Name, parentId, group.Groups.Count > 0, true, group.Entries.Count))); } else { var vaultManipulator = VaultManipulatorFactory.CreateInstance(vault); var parentGroup = vaultManipulator.GetGroupById(Guid.Parse(parentId)); treeNodes.AddRange(parentGroup.Groups.Select(group => CreateTreeNode(group.Id.ToString(), group.Name, parentId, group.Groups.Count > 0, false, group.Entries.Count))); //treeNodes.AddRange(parentGroup.Entries.Select(entry => CreateTreeNode(entry.Id.ToString(), entry.Title, parentId, false, false, false))); } return(Json(treeNodes)); } }
public LoginPresenter(ILoginView view, IServerCommunicator serverCommunicator, IMobileConfigurationReader mobileConfigurationReader, INavigationManager navigationManager, IFileSystem fileSystem, IVaultRepositoryFactory vaultRepositoryFactory, ISynchronizer synchronizer, IAlertDisplayer alertDisplayer, ISecureStringConverter secureStringConverter, IApplicationContext applicationContext) { this.View = view; this.MobileConfigurationReader = mobileConfigurationReader; this.NavigationManager = navigationManager; this.FileSystem = fileSystem; this.Synchronizer = synchronizer; this.VaultRepositoryFactory = vaultRepositoryFactory; this.AlertDisplayer = alertDisplayer; this.SecureStringConverter = secureStringConverter; this.ApplicationContext = applicationContext; var config = MobileConfigurationReader.GetConfiguration(); this.View.SyncButtonVisible = config.ApplicationMode == ApplicationMode.Client; var repository = VaultRepositoryFactory.CreateInstance(); var vaults = repository.GetAllVaultNames(); this.View.VaultNames = vaults; this.View.SelectedVaultName = vaults.FirstOrDefault(); this.View.Login += OnLogin; this.View.NavigateToConfiguration += OnNavigateToConfiguration; this.View.Sync += OnSync; this.Synchronizer.StatusUpdate += (message) => this.View.ActivityIndicatorText = message; this.View.Initialize += OnInitialize; }
public async void OnSync() { this.View.ActivityIndicatorText = StringResources.ContactingServer; this.View.DisableUI(); this.View.ShowLoadingIndicator(); bool success = await this.Synchronizer.Synchronize(); if (success) { var repository = VaultRepositoryFactory.CreateInstance(); var vaults = repository.GetAllVaultNames(); this.View.VaultNames = vaults; this.View.SelectedVaultName = vaults.FirstOrDefault(); } this.View.HideLoadingIndicator(); this.View.EnableUI(); }
public IActionResult Index(bool expired) { if (this.AuthorizationLogic.IsLoggedIn) { return(RedirectToAction("Index", "VaultExplorer")); } var repository = VaultRepositoryFactory.CreateInstance(); var vaults = repository.GetAllVaultNames(); if (vaults.Count() == 0) { return(RedirectToAction("Create", "Vault")); } var viewModel = new LoginIndexViewModel() { VaultNames = vaults, Expired = expired }; return(View(viewModel)); }
public IActionResult Rename(VaultRenameViewModel model) { SyncContext.Lock(); try { using (var masterPassword = SessionContext.GetMasterPassword()) { if (ModelState.IsValid) { var vaultRepository = VaultRepositoryFactory.CreateInstance(); if (vaultRepository.VaultExists(model.NewVaultName)) { ModelState.AddModelError(nameof(model.NewVaultName), StringResources.VaultNameAlreadyExists); return(View(model)); } var currentVaultName = SessionContext.GetCurrentVaultName(); var vault = vaultRepository.GetVault(currentVaultName, masterPassword); vault.Name = model.NewVaultName; vaultRepository.SaveVault(vault, masterPassword); vaultRepository.DeleteVault(currentVaultName); SessionContext.SetCurrentVaultName(model.NewVaultName); return(RedirectToAction("Index", "VaultExplorer")); } else { return(View(model)); } } } finally { SyncContext.Release(); } }
public JsonResult GetVaultsInfo() { var vaultRepository = VaultRepositoryFactory.CreateInstance(); var vaultNames = vaultRepository.GetAllVaultNames(); var result = new List <VaultInfo>(); foreach (string vault in vaultNames) { var metadata = vaultRepository.GetVaultMetadata(vault); result.Add(new VaultInfo { VaultName = vault, CreateLocation = metadata.CreateLocation, Version = metadata.Version }); } return(Json(result)); }