public async Task <IActionResult> Unassign(string username, string patientId) { var account = await _userManager.FindByNameAsync(username); var user = _pulseContext.User.Where(u => u.AccountId == account.Id).ToList()[0]; var assignment = _pulseContext.Assignment.Where(a => a.PatientId == patientId && a.PeerCoachId == user.Id).ToList()[0]; _pulseContext.Remove(assignment); await _pulseContext.SaveChangesAsync(); return(RedirectToAction("Edit", new RouteValueDictionary(new { controller = "EditUser", action = "Edit", Id = account.Id }))); }
public async Task <IActionResult> Delete(string Id) { var account = await _userManager.FindByIdAsync(Id); var user = _pulseContext.User.Where(u => u.AccountId == Id).ToList()[0]; var messages = _pulseContext.Message.Where(m => m.ReceiverId == user.Id || m.SenderId == user.Id).ToList(); foreach (var message in messages) { _pulseContext.Remove(message); } if (_userManager.GetRolesAsync(account).Result.Contains("PeerCoach")) { var assignedPatients = _pulseContext.Assignment.Where(a => a.PeerCoachId == user.Id).ToList(); foreach (var patient in assignedPatients) { _pulseContext.Remove(patient); } } else if (_userManager.GetRolesAsync(account).Result.Contains("Patient")) { var assignedPeerCoach = _pulseContext.Assignment.Where(a => a.PatientId == user.Id).ToList(); foreach (var coach in assignedPeerCoach) { _pulseContext.Remove(coach); } } await _pulseContext.SaveChangesAsync(); _pulseContext.Remove(user); await _pulseContext.SaveChangesAsync(); var result = await _userManager.DeleteAsync(account); return(RedirectToAction("Index", "Index")); }