public async Task <IActionResult> AddFlightStaffs(AddFlightStaffsVM vm) { var staffsOnFlight = SessionHelper.GetObjectFromJson <IEnumerable <int> >(HttpContext.Session, "staffsOnFlight"); var staffSelectedIdList = new List <int>(); var staffSelectedIdList2 = new List <int>(); if (vm.PilotsSelectedId != null) { staffSelectedIdList.AddRange(vm.PilotsSelectedId.Except(staffsOnFlight)); staffSelectedIdList2.AddRange(vm.PilotsSelectedId); } if (vm.StewardsSelectedId != null) { staffSelectedIdList.AddRange(vm.StewardsSelectedId.Except(staffsOnFlight)); staffSelectedIdList2.AddRange(vm.StewardsSelectedId); } var result = await _adminRepo.AddFlightStaffs(vm.Flight.ID, staffSelectedIdList); var staffToBeDeleted = staffsOnFlight.Except(staffSelectedIdList2); if (staffToBeDeleted != null && staffToBeDeleted.Count() > 0) { var result2 = await _adminRepo.DeleteFlightStaffs(vm.Flight.ID, staffToBeDeleted); } HttpContext.Session.Remove("staffsOnFlight"); return(RedirectToAction(nameof(ViewAllFlights))); }
public async Task <IActionResult> AddFlightStaffs(int flightId) { var staffs = await _adminRepo.GetStaffsOnFlight(flightId); SessionHelper.SetObjectAsJson <IEnumerable <int> >(HttpContext.Session, "staffsOnFlight", staffs.Select(s => s.ID)); var vm = new AddFlightStaffsVM { Flight = await _flightRepo.GetByFlightId(flightId), StaffsOnFlight = await _adminRepo.GetStaffsOnFlight(flightId), PilotsAvailable = (await _adminRepo.GetAvailableStaffs(flightId, 1)).Select(s => new SelectListItem { Value = s.ID.ToString(), Text = s.Name }), StewardsAvailable = (await _adminRepo.GetAvailableStaffs(flightId, 2)).Select(s => new SelectListItem { Value = s.ID.ToString(), Text = s.Name }) }; return(View(vm)); }