public IActionResult Edit(string id)
        {
            if (id == null || id == "")
            {
                return(NotFound());
            }

            int decryptedId = Convert.ToInt32(Protector.Unprotect(id));

            if (DbContext.StoredAccounts.Find(decryptedId) != null)
            {
                var detailsObj = DbContext.StoredAccountsDetails
                                 .Where(details => details.AccountId == decryptedId)
                                 .FirstOrDefault();
                var passwordObj = DbContext.StoredPasswords
                                  .Where(password => password.AccountId == decryptedId)
                                  .FirstOrDefault();

                OutputAccount outputAccount = new OutputAccount
                {
                    StoredAccountDetails = detailsObj,
                    Password             = CredentialsProcessor.Decrypt(passwordObj.Password, User.Identity.Name)
                };

                return(View(outputAccount));
            }
            else
            {
                return(NotFound());
            }
        }
        public IActionResult Index(int?page)
        {
            var user = User.Identity;

            List <OutputAccount> accountsList = new List <OutputAccount>();
            List <StoredAccount> dbAccounts   = new List <StoredAccount>();

            if (user.IsAuthenticated)
            {
                foreach (var account in DbContext.StoredAccounts.ToList())
                {
                    if (account.UserId.Equals(int.Parse(UserManager.GetUserId(User))))
                    {
                        dbAccounts.Add(account);

                        var accountDetails = DbContext.StoredAccountsDetails
                                             .Where(a => a.AccountId == account.AccountId)
                                             .FirstOrDefault();

                        var accountPassword = DbContext.StoredPasswords
                                              .Where(password => password.AccountId == account.AccountId)
                                              .FirstOrDefault();

                        var decryptedPassword =
                            (accountPassword.Password != null) && (accountPassword.Password != "") && (accountPassword.Password != " ") ?
                            CredentialsProcessor.Decrypt(accountPassword.Password, user.Name) : " ";

                        var accountOutput = new OutputAccount()
                        {
                            Id = Protector.Protect(account.AccountId.ToString()),
                            StoredAccountDetails = accountDetails,
                            Password             = decryptedPassword
                        };

                        accountsList.Add(accountOutput);
                    }
                }

                ViewBag.UserName = user.Name;
            }

            int pageSize   = 6;
            int pageNumber = (page ?? 1);

            return(View(accountsList.ToPagedList(pageNumber, pageSize)));
        }