Example #1
0
        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)));
        }
Example #2
0
        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));
        }