public async Task <IActionResult> Delete(int id)
        {
            User usr          = Functions.getUser(_cache);                              // get logged user
            var  passwdFromDb = await _db.Passwds.FirstOrDefaultAsync(a => a.Id == id); // get password with delivered id

            SharedPasswd sharedPassword = _db.SharedPasswds.Where(a => a.PasswdId == passwdFromDb.Id &&
                                                                  a.UserSharedId == usr.Id).FirstOrDefault();

            if (passwdFromDb.UserId == usr.Id)
            {
                if (passwdFromDb == null)
                {
                    return(Json(new { success = false, message = "Error while deleting" }));
                }
                _db.Passwds.Remove(passwdFromDb);
                await _db.SaveChangesAsync();

                return(Json(new { success = true, message = "Delete successful" }));
            }
            else if (sharedPassword.UserSharedId == usr.Id)
            {
                if (sharedPassword == null)
                {
                    return(Json(new { success = false, message = "Error while deleting" }));
                }
                _db.SharedPasswds.Remove(sharedPassword);
                await _db.SaveChangesAsync();

                return(Json(new { success = true, message = "Password is no longer shared" }));
            }
            return(Json(new { success = false, message = "Error while deleting" }));
        }
        public IActionResult ShareToUser(string username, int id)
        {
            User         userOwner   = Functions.getUser(_cache);
            Passwd       passwd      = _db.Passwds.Where(a => a.Id == id).FirstOrDefault();
            User         userToShare = _db.Users.Where(a => a.Nickname == username).FirstOrDefault();
            SharedPasswd shared      = _db.SharedPasswds.Where(a => a.PasswdId == id && a.UserSharedId == userToShare.Id).FirstOrDefault();

            if (userToShare == null)
            {
                _cache.Set(CacheNames.error3, "There is no users with that nickname");
                return(RedirectToAction("Share", new { id }));
            }
            if (shared != null)
            {
                _cache.Set(CacheNames.error3, "You are already sharing password with that user");
                return(RedirectToAction("Share", new { id }));
            }
            if (username == userOwner.Nickname)
            {
                _cache.Set(CacheNames.error3, "You can't share password with that user");
                return(RedirectToAction("Share", new { id }));
            }
            if (userOwner.Id == passwd.UserId)
            {
                SharedPasswd passToShare = new SharedPasswd()
                {
                    PasswdId     = passwd.Id,
                    UserOwnerId  = userOwner.Id,
                    UserSharedId = userToShare.Id
                };
                _db.SharedPasswds.Add(passToShare);
                _db.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }