public async Task <CompetitionResponse> RemoveAdminFromCompetition(Guid userId, Guid competitionId) { var admins = await _adminRepo.GetList(competitionId); //if user is only admin, either: // promote user who has been asked to be admin OR // inform user they must pass the responsibilities to someone else if (admins.Count() == 1) { var adminRequests = await _adminRequestRepo.GetList(competitionId); if (adminRequests.Count() == 0) { throw new ApiError(403, "You are the only admin in this competition. Ask someone else to be an admin before relinquishing your responsibilitites."); } var newAdmin = new Admin(adminRequests.First().UserId, competitionId); _adminRequestRepo.Delete(adminRequests.First()); _adminRepo.Create(newAdmin); } var admin = admins.First(x => x.UserId == userId); _adminRepo.Delete(admin); await _adminRepo.Save(); //return competition with admin information var competition = await _competitionRepo.GetWithInfo(competitionId); return(new CompetitionResponse(competition, false, userId)); }
public ActionResult DeleteUser(string UserName, string id, AspNetUser u) { if (id == null) { return(HttpNotFound()); } AspNetUser au = Arepo.FindUsersById(id); if (au == null) { return(HttpNotFound()); } Arepo.Delete(au); ViewBag.Message = "User has been deleted successfully"; return(RedirectToAction("SearchToDeleteOrEdit")); }