// GET: SickWardenRelations/Accept/5 public async Task <IActionResult> Accept(long?id) { AppUser appUser = AuthExtender.GetLoggedInUser(this, _context); if (id == null) { return(NotFound()); } SickWarden sickWarden = await _context.SickWardenRelations.FindAsync(id); if (sickWarden == null) { return(NotFound()); } await _context.Entry(sickWarden).Reference(p => p.Sick).LoadAsync(); await _context.Entry(sickWarden).Reference(p => p.Warden).LoadAsync(); if (sickWarden.Sick.Equals(appUser) && sickWarden.IsProposedByWarden.GetValueOrDefault()) { sickWarden.IsAccepted = true; _context.SickWardenRelations.Update(sickWarden); await _context.SaveChangesAsync(); } else if (sickWarden.Warden.Equals(appUser) && !sickWarden.IsProposedByWarden.GetValueOrDefault()) { sickWarden.IsAccepted = true; _context.SickWardenRelations.Update(sickWarden); await _context.SaveChangesAsync(); } return(RedirectToAction(nameof(Index))); }
// GET: SickWardenRelations/Delete/5 public async Task <IActionResult> Delete(long?id) { AppUser appUser = AuthExtender.GetLoggedInUser(this, _context); if (id == null) { return(NotFound()); } SickWarden sickWarden = await _context.SickWardenRelations .FirstOrDefaultAsync(m => m.Id == id); if (sickWarden == null) { return(NotFound()); } await _context.Entry(sickWarden).Reference(p => p.Sick).LoadAsync(); await _context.Entry(sickWarden).Reference(p => p.Warden).LoadAsync(); SickWardenDeleteViewModel viewModel = new SickWardenDeleteViewModel { Id = sickWarden.Id, FullName = sickWarden.Warden.Equals(appUser) ? sickWarden.Sick.FullName : sickWarden.Warden.FullName }; return(View(viewModel)); }
public async Task <IActionResult> Create(SickWardenAddViewModel sickWardenAddViewModel) { AppUser appUser = AuthExtender.GetLoggedInUser(this, _context); if (ModelState.IsValid) { Boolean isSick = sickWardenAddViewModel.TypeId.Equals("sick"); AppUser anotherUser = _context.Users.FirstOrDefault(p => p.Id.Equals(sickWardenAddViewModel.UserId)); if (anotherUser == null) { ModelState.AddModelError("UserId", "Hack attempt!"); ViewBag.UserList = MakeAllowedUsersList(appUser, null); ViewBag.TypeList = MakeTypeList(); return(View(sickWardenAddViewModel)); } if (isSick) { if (_context.SickWardenRelations.Any(p => p.Sick.Equals(appUser) && p.Warden.Equals(anotherUser))) { ModelState.AddModelError("UserId", "Hack attempt!"); ViewBag.UserList = MakeAllowedUsersList(appUser, null); ViewBag.TypeList = MakeTypeList(); return(View(sickWardenAddViewModel)); } } else { if (_context.SickWardenRelations.Any(p => p.Warden.Equals(appUser) && p.Sick.Equals(anotherUser))) { ModelState.AddModelError("UserId", "Hack attempt!"); ViewBag.UserList = MakeAllowedUsersList(appUser, null); ViewBag.TypeList = MakeTypeList(); return(View(sickWardenAddViewModel)); } } SickWarden sickWarden = new SickWarden { Sick = isSick ? appUser : anotherUser, Warden = isSick ? anotherUser : appUser, IsAccepted = false, IsProposedByWarden = !isSick }; _context.Add(sickWarden); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewBag.UserList = MakeAllowedUsersList(appUser, null); ViewBag.TypeList = MakeTypeList(); return(View(sickWardenAddViewModel)); }
public async Task <IActionResult> DeleteConfirmed(long id) { AppUser appUser = AuthExtender.GetLoggedInUser(this, _context); SickWarden sickWarden = await _context.SickWardenRelations.FindAsync(id); await _context.Entry(sickWarden).Reference(p => p.Sick).LoadAsync(); await _context.Entry(sickWarden).Reference(p => p.Warden).LoadAsync(); if (sickWarden.Warden.Equals(appUser) || sickWarden.Sick.Equals(appUser)) { _context.SickWardenRelations.Remove(sickWarden); await _context.SaveChangesAsync(); } return(RedirectToAction(nameof(Index))); }