public async Task <IActionResult> TemporaryPassProcessing(int id, int visitorId) { TemporaryPass temporaryPass; if (id != 0) { temporaryPass = await passRepository.GetAll() .Where(v => v.Id == id) .Include(v => v.StationFacilities) .Include(v => v.TemporaryPassIssued) .ThenInclude(v => v.Department) .FirstAsync(); } else { if (visitorId != 0) { temporaryPass = new TemporaryPass(); temporaryPass.TemporaryPassIssued = await GetRequestUserAsync(); temporaryPass.ValidWith = DateTime.Now; temporaryPass.ValitUntil = DateTime.Now; temporaryPass.VisitorId = visitorId; } else { return(new BadRequestResult()); } } return(View(new TemporaryPassVM { ProcessingTemporaryPass = temporaryPass, ShowAdvancedFeatures = HttpContext.User.IsInRole("Administrator") || HttpContext.User.IsInRole("Moderator") })); }
public async Task <RedirectToActionResult> TemporaryPassProcessing(TemporaryPass ProcessingTemporaryPass, List <int> facilitiesId) { await passRepository.Update(ProcessingTemporaryPass); passRepository.GetAll().Where(v => v.Id == ProcessingTemporaryPass.Id). Include(v => v.StationFacilities) .First(); ProcessingTemporaryPass.StationFacilities = facilitiesId.Select(id => stationFacilitysRepository.GetAll() .Where(v => v.Id == id) .Include(v => v.TemporaryPasses) .First()).ToList(); ProcessingTemporaryPass.TemporaryPassIssued = await GetRequestUserAsync(); await passRepository.Update(ProcessingTemporaryPass); int id = ProcessingTemporaryPass.Id; return(RedirectToAction("TemporaryPassProcessing", new { id = id })); }
public async Task <IActionResult> GetAllowedList(int processingPass) { var pass = await passRepository.GetAll() .Where(v => v.Id == processingPass) .Include(v => v.StationFacilities).FirstOrDefaultAsync(); if (pass == null) { pass = new TemporaryPass(); pass.StationFacilities = new List <StationFacility>(); } var allPass = await stationFacilitysRepository.GetAll().ToListAsync(); var accessPairs = allPass.Select(s => new { Facility = s, Allow = pass.StationFacilities .Where(v => v.Id == s.Id) .Any() }) .ToDictionary(v => v.Facility, i => i.Allow); return(View(accessPairs)); }