public AccountActionResponse ExecuteAction(AccountActionRequest request, Guid userID) { AccountDto userAccount = _baseService.GetAccountById(userID, false); if (request.AccountId == null || request.AccountId == Guid.Empty) { request.AccountId = userID; } AccountDto savedAccount = _baseService.GetAccountById(request.AccountId, false); if (request.Account == null) { request.Account = savedAccount; } if (StaticConfiguration.GetAcrionByProfile(userAccount.Role) == null) { throw new Exception("Invalid Profile"); } else { ApplicationAction actions = StaticConfiguration.GetAcrionByProfile(userAccount.Role).Find(x => x.Id == request.ActionId); if (actions == null) { throw new Exception("Invalid Action"); } Func <AccountDto, AccountDto, AccountActionRequest, string, AccountActionResponse> func; if (!this.ActionIdToFunction.TryGetValue(request.ActionId, out func)) { throw new Exception("Δεν βρέθηκε ενέργεια για το Id: " + request.ActionId); } return(func(savedAccount, request.Account, request, userAccount.Role)); } }
public AccountDto GetSpesificAccount(AccountActionRequest request) { List <AccountDto> accounts = _storageService.GetAccounts(); AccountDto user = accounts.Find(x => request?.Account?.UserName == x.UserName); if (_storageService.ValidateAccount(request.Account)) { return(user); } return(null); }
public IEnumerable <AccountDto> GetAccounts(AccountActionRequest request) { List <AccountDto> accounts = _storageService.GetAccounts(); List <AccountDto> filteredAccounts = new List <AccountDto>(); return(accounts.FindAll(x => { bool isCorrectAccount = false; isCorrectAccount = (!string.IsNullOrWhiteSpace(request?.Account?.UserName) ? x.UserName == request?.Account?.UserName : true) && (!string.IsNullOrWhiteSpace(request?.Account?.Email) ? x.Email == request?.Account?.Email : true) && (!string.IsNullOrWhiteSpace(request?.Account?.FirstName) ? x.FirstName == request?.Account?.FirstName : true) && (!string.IsNullOrWhiteSpace(request?.Account?.LastName) ? x.FirstName == request?.Account?.LastName : true) && (!string.IsNullOrWhiteSpace(request?.Account?.Role) ? x.Role == request?.Account?.Role : true); return isCorrectAccount; })); }
public Response <AccountActionResponse> AccountAction([FromBody] AccountActionRequest request) { return(_exceptionHandler.HandleException(() => _accountService.ExecuteAction(request, Guid.Parse(HttpContext.User.Identity.Name)), request.ActionId)); }
private AccountActionResponse GetIfHackedFunc(AccountDto savedAccount, AccountDto requestedAccount, AccountActionRequest request, string Role) { string isHacked = ""; try { var responce = (_hackScanner.IsThisEmailHacked(requestedAccount?.Email)).GetAwaiter().GetResult(); if (responce != null && responce.IsHacked) { _hackScanner.EmailHackedInfo(requestedAccount.Email).GetAwaiter().GetResult()?.FromSites?.ForEach(x => isHacked = isHacked + "List: " + x.Site + " When: " + x.LastDate.ToString() + ". "); } } catch (Exception ex) { _logger.LogError(ex.Message); return(new AccountActionResponse() { Accounts = GetMyAccount(new BaseRequest() { }, savedAccount.AccountId).Accounts, WarningMessages = new List <string>() { "Service Not Avalable Now" } }); } return(new AccountActionResponse() { Accounts = new List <AccountDto>() { requestedAccount }, WarningMessages = string.IsNullOrWhiteSpace(isHacked) ? new List <string>() { "Accound is Safe" } : new List <string>() { "Accound is Hack You mast Change Password", JsonConvert.SerializeObject(isHacked) } }); }
private AccountActionResponse ActionRemoveAccountFunc(AccountDto savedAccount, AccountDto requestedAccount, AccountActionRequest request, string Role) { AccountDto accountToDelete = _baseService.GetAccountById(requestedAccount.AccountId, false); accountToDelete.Passwords.ForEach(password => { password = _baseService.GetPassword(password.PasswordId); _baseService.RemovePassword(password); }); _baseService.RemoveAccount(accountToDelete); return(new AccountActionResponse() { Accounts = _baseService.GetAccounts(request).ToList() }); }
private AccountActionResponse ActionGetAccountAndPasswordFunc(AccountDto savedAccount, AccountDto requestedAccount, AccountActionRequest request, string Role) { request.Account = null; return(new AccountActionResponse() { Accounts = _baseService.GetAccounts(request).ToList() }); }
private AccountActionResponse ActionGetAccountFunc(AccountDto savedAccount, AccountDto requestedAccount, AccountActionRequest request, string Role) { List <PasswordDto> passwords = new List <PasswordDto>(); savedAccount.Passwords.ForEach(x => passwords.Add(_baseService.GetPassword(x.PasswordId))); savedAccount.Passwords = passwords; return(new AccountActionResponse() { Accounts = new List <AccountDto>() { savedAccount } }); }
private AccountActionResponse ActionSeveAccountFunc(AccountDto savedAccount, AccountDto requestedAccount, AccountActionRequest request, string Role) { AccountDto resultAccount = new AccountDto(); request.Account = resultAccount; List <AccountDto> accountsList = _baseService.GetAccounts(request).ToList(); //if exist then update if (accountsList.Find(x => x.UserName == requestedAccount.UserName || x.AccountId == requestedAccount.AccountId) != null) { requestedAccount.Passwords.ForEach(x => { _baseService.UpdatePassword(x); }); resultAccount = _baseService.UpdateAccount(requestedAccount, Role, false); } else { requestedAccount.AccountId = Guid.NewGuid(); requestedAccount.Passwords.ForEach(x => { _baseService.AddNewPassword(x); }); resultAccount = _baseService.AddNewAccount(requestedAccount); } return(new AccountActionResponse() { Accounts = new List <AccountDto>() { resultAccount } }); }