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")); }