public PasswordActionResponse PasswordAction(PasswordActionRequest request, Guid userID)
        {
            AccountDto userAccount    = _baseService.GetAccountById(userID, true);
            Guid       accountToScann = userID;

            if (userAccount.Role == "Admin")
            {
                accountToScann = request.AccountId;
            }

            AccountDto  account       = _baseService.GetAccountById(accountToScann, true);
            PasswordDto savedPassword = _baseService.GetPasswords(request, account).FirstOrDefault();

            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 <PasswordDto, PasswordDto, AccountDto, PasswordActionRequest, PasswordActionResponse> func;
                if (!this.ActionIdToFunction.TryGetValue(request.ActionId, out func))
                {
                    throw new Exception("Δεν βρέθηκε ενέργεια για το Id: " + request.ActionId);
                }
                return(func(savedPassword, request.Password, account, request));
            }
        }
Пример #2
0
        public IEnumerable <PasswordDto> GetPasswords(PasswordActionRequest request, AccountDto account)
        {
            List <PasswordDto> passwords = new List <PasswordDto>();

            _storageService.GetPasswords().ForEach(x =>
            {
                if (account.Passwords.Find(accountPass => accountPass.PasswordId == x.PasswordId) == null)
                {
                    return;
                }
                bool haseCorrectValues = false;
                haseCorrectValues      = (!string.IsNullOrWhiteSpace(request?.Password?.Name) ? request?.Password?.Name == x?.Name : true) && (!string.IsNullOrWhiteSpace(request?.Password?.LogInLink) ? request?.Password?.LogInLink == x?.LogInLink : true) && (!string.IsNullOrWhiteSpace(request?.Password?.UserName) ? request?.Password?.LogInLink == x?.LogInLink : true);
                if (haseCorrectValues)
                {
                    passwords.Add(x);
                }
            });
            return(passwords);
        }
        private PasswordActionResponse UpdateOrAddPasswordFunc(PasswordDto savedPass, PasswordDto requesPass, AccountDto account, PasswordActionRequest request)
        {
            if (account.Passwords.Find(pass => requesPass?.PasswordId == pass.PasswordId) != null)
            {
                _baseService.UpdatePassword(requesPass);
            }
            else
            {
                Guid newPassId = Guid.NewGuid();
                requesPass.PasswordId = newPassId;
                account.Passwords.Add(requesPass);
                _baseService.UpdateAccount(account, account.Role, true);
                _baseService.AddNewPassword(requesPass);
            }

            return(new PasswordActionResponse()
            {
                Passwords = account.Passwords
            });
        }
 private PasswordActionResponse GetPaswordsFunc(PasswordDto savedPass, PasswordDto requesPass, AccountDto account, PasswordActionRequest request)
 {
     return(new PasswordActionResponse()
     {
         Passwords = _baseService.GetPasswords(request, account).ToList()
     });
 }
        private PasswordActionResponse RemovePasswordFunc(PasswordDto savedPass, PasswordDto requesPass, AccountDto account, PasswordActionRequest request)
        {
            int index = account.Passwords.FindIndex(pass => requesPass?.PasswordId == pass.PasswordId);

            if (index < 0 && index > account.Passwords.Count())
            {
                throw new Exception("invalid PasswordId");
            }

            account.Passwords.RemoveAt(index);
            _baseService.UpdateAccount(account, account.Role, true);
            _baseService.RemovePassword(requesPass);

            return(new PasswordActionResponse()
            {
                Passwords = account.Passwords
            });
        }
 public Response <PasswordActionResponse> PasswordAction([FromBody] PasswordActionRequest request)
 {
     return(_exceptionHandler.HandleException(() => _passwordService.PasswordAction(request, Guid.Parse(HttpContext.User.Identity.Name)), request.ActionId));
 }