示例#1
0
        private async Task SetAsWorkstationAccountAsync()
        {
            try
            {
                await EmployeeService.SetAsPrimaryAccountAsync(Account.Employee.Id, Account.Id);

                var employee = await EmployeeService.GetEmployeeByIdAsync(Account.Employee.Id);

                RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(await EmployeeService.GetEmployeeVaultIdsAsync(employee.Id));
                await Refresh.InvokeAsync(this);

                await ToastService.ShowToastAsync("Account setted as primary.", ToastType.Success);

                await SynchronizationService.UpdateEmployeeDetails(ExceptPageId, Account.EmployeeId);

                await ModalDialogService.CloseAsync();
            }
            catch (Exception ex)
            {
                await ModalDialogService.CloseAsync();

                Logger.LogError(ex.Message, ex);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);
            }
        }
        private async Task CreateAccountAsync()
        {
            try
            {
                await ButtonSpinner.SpinAsync(async() =>
                {
                    await EmployeeService.CreatePersonalAccountAsync(PersonalAccount);
                    RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(await EmployeeService.GetEmployeeVaultIdsAsync(EmployeeId));
                    await Refresh.InvokeAsync(this);
                    await ToastService.ShowToastAsync("Account created.", ToastType.Success);
                    await SynchronizationService.UpdateEmployeeDetails(ExceptPageId, EmployeeId);
                    await ModalDialogService.CloseAsync();
                });
            }
            catch (AlreadyExistException ex)
            {
                ValidationErrorMessage.DisplayError(nameof(PersonalAccount.Name), ex.Message);
            }
            catch (IncorrectUrlException ex)
            {
                ValidationErrorMessage.DisplayError(nameof(PersonalAccount.Urls), ex.Message);
            }
            catch (IncorrectOtpException ex)
            {
                ValidationErrorMessage.DisplayError(nameof(PersonalAccount.OtpSecret), ex.Message);
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);

                await ModalDialogService.CancelAsync();
            }
        }
示例#3
0
        private async Task EditAccountPasswordAsync()
        {
            try
            {
                await ButtonSpinner.SpinAsync(async() =>
                {
                    using (TransactionScope transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                    {
                        await EmployeeService.EditPersonalAccountPwdAsync(Account, AccountPassword);

                        if (AccountPassword.UpdateActiveDirectoryPassword)
                        {
                            await LdapService.SetUserPasswordAsync(Account.EmployeeId, AccountPassword.Password, LdapSettings);
                        }

                        transactionScope.Complete();
                    }

                    RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(await EmployeeService.GetEmployeeVaultIdsAsync(Account.EmployeeId));
                    await ToastService.ShowToastAsync("Account password updated.", ToastType.Success);
                    await ModalDialogClose();
                });
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);
                await ModalDialogClose();
            }
        }
示例#4
0
        private async Task GenerateAccountPasswordAsync()
        {
            try
            {
                if (LdapSettings?.Password == null)
                {
                    throw new Exception("Active Directory credentials not set in parameters page.");
                }

                var accountPassword = new AccountPassword()
                {
                    Password = PasswordGenerator.Generate()
                };

                using (TransactionScope transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    await EmployeeService.EditPersonalAccountPwdAsync(Account, accountPassword);

                    await LdapService.SetUserPasswordAsync(Account.EmployeeId, accountPassword.Password, LdapSettings);

                    transactionScope.Complete();
                }

                RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(await EmployeeService.GetEmployeeVaultIdsAsync(Account.EmployeeId));
                await ToastService.ShowToastAsync("Account password updated.", ToastType.Success);
                await ModalDialogClose();
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);
                await ModalDialogCancel();
            }
        }
示例#5
0
 private async Task CreateAccountAsync()
 {
     try
     {
         await ButtonSpinner.SpinAsync(async() =>
         {
             await EmployeeService.CreatePersonalAccountAsync(PersonalAccount);
             RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(await EmployeeService.GetEmployeeVaultIdsAsync(EmployeeId));
             await ToastService.ShowToastAsync("Account created.", ToastType.Success);
             await ModalDialogClose();
         });
     }
     catch (HESException ex) when(ex.Code == HESCode.AccountExist)
     {
         ValidationErrorMessage.DisplayError(nameof(PersonalAccount.Name), ex.Message);
     }
     catch (HESException ex) when(ex.Code == HESCode.IncorrectUrl)
     {
         ValidationErrorMessage.DisplayError(nameof(PersonalAccount.Urls), ex.Message);
     }
     catch (HESException ex) when(ex.Code == HESCode.IncorrectOtp)
     {
         ValidationErrorMessage.DisplayError(nameof(PersonalAccount.OtpSecret), ex.Message);
     }
     catch (Exception ex)
     {
         Logger.LogError(ex.Message);
         await ToastService.ShowToastAsync(ex.Message, ToastType.Error);
         await ModalDialogCancel();
     }
 }
示例#6
0
        private async Task EditAccoountOtpAsync()
        {
            try
            {
                await ButtonSpinner.SpinAsync(async() =>
                {
                    var vaults = await SharedAccountService.EditSharedAccountOtpAsync(Account, AccountOtp);
                    RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(vaults);
                    await SynchronizationService.UpdateSharedAccounts(ExceptPageId);
                    await ToastService.ShowToastAsync("Account OTP updated.", ToastType.Success);
                    await ModalDialogService.CloseAsync();
                });
            }
            catch (IncorrectOtpException ex)
            {
                ValidationErrorMessage.DisplayError(nameof(SharedAccount.OtpSecret), ex.Message);
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);

                await ModalDialogService.CancelAsync();
            }
        }
        private async Task EditAccountOtpAsync()
        {
            try
            {
                await ButtonSpinner.SpinAsync(async() =>
                {
                    await EmployeeService.EditPersonalAccountOtpAsync(Account, _accountOtp);
                    RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(await EmployeeService.GetEmployeeVaultIdsAsync(Account.EmployeeId));
                    await ToastService.ShowToastAsync("Account OTP updated.", ToastType.Success);
                    await SynchronizationService.UpdateEmployeeDetails(ExceptPageId, Account.EmployeeId);
                    await ModalDialogService.CloseAsync();
                });
            }
            catch (IncorrectOtpException ex)
            {
                ValidationErrorMessage.DisplayError(nameof(AccountOtp.OtpSecret), ex.Message);
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);

                await ModalDialogService.CloseAsync();
            }
        }
        private async Task AddSharedAccoountAsync()
        {
            try
            {
                var account = await EmployeeService.AddSharedAccountAsync(EmployeeId, SelectedSharedAccount.Id);

                var employee = await EmployeeService.GetEmployeeByIdAsync(account.EmployeeId);

                RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(employee.HardwareVaults.Select(x => x.Id).ToArray());
                await Refresh.InvokeAsync(this);

                await ToastService.ShowToastAsync("Account added and will be recorded when the device is connected to the server.", ToastType.Success);

                await SynchronizationService.UpdateEmployeeDetails(ExceptPageId, EmployeeId);

                await ModalDialogService.CloseAsync();
            }
            catch (Exception ex)
            {
                await ModalDialogService.CloseAsync();

                Logger.LogError(ex.Message, ex);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);
            }
        }
示例#9
0
        public async Task DeleteVaultAsync()
        {
            try
            {
                var employeeId = HardwareVault.EmployeeId;
                await EmployeeService.RemoveHardwareVaultAsync(HardwareVault.Id, Reason, IsNeedBackup);

                await Refresh.InvokeAsync(this);

                RemoteDeviceConnectionsService.StartUpdateHardwareVaultStatus(HardwareVault.Id);
                await SynchronizationService.UpdateEmployeeDetails(ExceptPageId, employeeId);

                await SynchronizationService.HardwareVaultStateChanged(HardwareVault.Id);

                await ToastService.ShowToastAsync("Vault removed.", ToastType.Success);

                await ModalDialogService.CloseAsync();
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message, ex);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);

                await ModalDialogService.CancelAsync();
            }
        }
示例#10
0
 private async Task EditAccountAsync()
 {
     try
     {
         await Button.SpinAsync(async() =>
         {
             var vaults = await SharedAccountService.EditSharedAccountAsync(SharedAccountEditModel);
             RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(vaults);
             await ToastService.ShowToastAsync("Shared account updated.", ToastType.Success);
             await ModalDialogClose();
         });
     }
     catch (AlreadyExistException ex)
     {
         ValidationErrorMessage.DisplayError(nameof(SharedAccount.Name), ex.Message);
     }
     catch (IncorrectUrlException ex)
     {
         ValidationErrorMessage.DisplayError(nameof(SharedAccount.Urls), ex.Message);
     }
     catch (Exception ex)
     {
         Logger.LogError(ex.Message, ex);
         await ToastService.ShowToastAsync(ex.Message, ToastType.Error);
         await ModalDialogCancel();
     }
 }
示例#11
0
        private async Task DeleteAccoountAsync()
        {
            try
            {
                var vaults = await SharedAccountService.DeleteSharedAccountAsync(Account.Id);

                RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(vaults);
                await ToastService.ShowToastAsync("Account deleted.", ToastType.Success);
                await ModalDialogClose();
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);
                await ModalDialogCancel();
            }
        }
示例#12
0
        private async Task ChangeProfileAsync()
        {
            try
            {
                await HardwareVaultService.ChangeVaultProfileAsync(HardwareVault.Id, SelectedVaultProfileId);

                RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(HardwareVault.Id);
                await ToastService.ShowToastAsync("Vault profile updated", ToastType.Success);
                await ModalDialogClose();
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);
                await ModalDialogCancel();
            }
        }
示例#13
0
        private async Task DeleteAccoountAsync()
        {
            try
            {
                var account = await EmployeeService.DeleteAccountAsync(Account.Id);

                RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(await EmployeeService.GetEmployeeVaultIdsAsync(account.EmployeeId));
                await ToastService.ShowToastAsync("Account deleted.", ToastType.Success);
                await ModalDialogClose();
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message, ex);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);
                await ModalDialogCancel();
            }
        }
示例#14
0
        private async Task ChangeStatusAsync()
        {
            try
            {
                switch (VaultStatus)
                {
                case VaultStatus.Active:
                    await HardwareVaultService.ActivateVaultAsync(HardwareVault.Id);

                    await ToastService.ShowToastAsync("Vault pending activate.", ToastType.Success);

                    break;

                case VaultStatus.Suspended:
                    await HardwareVaultService.SuspendVaultAsync(HardwareVault.Id, StatusDescription);

                    await ToastService.ShowToastAsync("Vault pending suspend.", ToastType.Success);

                    break;

                case VaultStatus.Compromised:
                    if (CompromisedIsDisabled)
                    {
                        return;
                    }
                    await HardwareVaultService.VaultCompromisedAsync(HardwareVault.Id, StatusReason, StatusDescription);

                    await ToastService.ShowToastAsync("Vault compromised.", ToastType.Success);

                    break;
                }

                await SynchronizationService.UpdateHardwareVaults(ExceptPageId);

                RemoteDeviceConnectionsService.StartUpdateHardwareVaultStatus(HardwareVault.Id);
                await ModalDialogService.CloseAsync();
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);

                await ModalDialogService.CancelAsync();
            }
        }
示例#15
0
 private async Task EditAccoountPasswordAsync()
 {
     try
     {
         await Button.SpinAsync(async() =>
         {
             var vaults = await SharedAccountService.EditSharedAccountPwdAsync(Account, AccountPassword);
             RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(vaults);
             await ToastService.ShowToastAsync("Account password updated.", ToastType.Success);
             await ModalDialogClose();
         });
     }
     catch (Exception ex)
     {
         Logger.LogError(ex.Message);
         await ToastService.ShowToastAsync(ex.Message, ToastType.Error);
         await ModalDialogCancel();
     }
 }
        private async Task SetAsWorkstationAccountAsync()
        {
            try
            {
                await EmployeeService.SetAsPrimaryAccountAsync(Account.Employee.Id, Account.Id);

                var employee = await EmployeeService.GetEmployeeByIdAsync(Account.Employee.Id);

                RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(await EmployeeService.GetEmployeeVaultIdsAsync(employee.Id));
                await ToastService.ShowToastAsync("Account setted as primary.", ToastType.Success);
                await ModalDialogClose();
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message, ex);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);
                await ModalDialogCancel();
            }
        }
示例#17
0
        private async Task CreateAsync()
        {
            try
            {
                using (TransactionScope transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    await EmployeeService.CreateEmployeeAsync(Employee);

                    if (SelectedHardwareVault != null)
                    {
                        await EmployeeService.AddHardwareVaultAsync(Employee.Id, SelectedHardwareVault.Id);
                    }

                    if (!AccountSkiped)
                    {
                        if (AccountType == AccountType.Personal)
                        {
                            await EmployeeService.CreatePersonalAccountAsync(PersonalAccount);
                        }
                        else
                        {
                            await EmployeeService.AddSharedAccountAsync(Employee.Id, SharedAccountId);
                        }
                    }

                    transactionScope.Complete();
                }

                if (SelectedHardwareVault != null)
                {
                    RemoteDeviceConnectionsService.StartUpdateHardwareVaultAccounts(SelectedHardwareVault.Id);
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(ex.Message);
                await ToastService.ShowToastAsync(ex.Message, ToastType.Error);

                await ModalDialogService.CloseAsync();
            }
        }