コード例 #1
0
        public async Task <IActionResult> Edit(EditFlightViewModel model)
        {
            IActionResult result;

            if (ModelState.IsValid)
            {
                await _flights.UpdateFlightAsync(model.Id, model.FlightNumber, model.Embarkation, model.Destination, model.AirlineId);

                result = RedirectToAction("Index", new
                {
                    airlineId   = 0,
                    number      = model.FlightNumber,
                    embarkation = "",
                    destination = ""
                });
            }
            else
            {
                List <Airline> airlines = await _airlines.GetAirlinesAsync();

                model.SetAirlines(airlines);
                result = View(model);
            }

            return(result);
        }
コード例 #2
0
        public async virtual Task <ActionResult> Edit(EditFlightViewModel flightModel)
        {
            if (ModelState.IsValid)
            {
                var flight = await this.flightService.GetFlight(flightModel.Id);

                var sourceAiport      = this.aiportList.FirstOrDefault(x => x.Code == flightModel.SourceAirportID);
                var destinationAiport = this.aiportList.FirstOrDefault(x => x.Code == flightModel.DestinationAirportID);

                Mapper.Map <EditFlightViewModel, Flight>(flightModel, flight);
                Mapper.Map <AiportViewModel, Aiport>(sourceAiport, flight.Source);
                Mapper.Map <AiportViewModel, Aiport>(destinationAiport, flight.Destination);

                flight.LastModifiedUser = User.Identity.Name;
                flight.LastModifiedDate = DateTime.Now;

                await flightService.PutFlight(flight);

                return(RedirectToAction("Index"));
            }
            else
            {
                ViewBag.AiportList = this.aiportList;

                return(View(flightModel));
            }
        }
コード例 #3
0
        public IActionResult EditFlight(EditFlightViewModel model)
        {
            if (ModelState.IsValid)
            {
                var currentFlight = FlightService.EditFlight(model.Id, model.DepartureLocation, model.LandingLocation, model.DepartureDateTime, model.LandingDateTime,
                                                             model.PlaneType, model.PlaneUniqueId, model.PilotName, model.RegularSeats, model.BusinessSeats);

                if (currentFlight == -1)
                {
                    ViewBag.Message = "The departure and landing locations can't be the same!";
                    return(View());
                }
                if (currentFlight == -2)
                {
                    ViewBag.Message = "The departure datetime can't be ahead of the landing datetime!";
                    return(View());
                }
                if (currentFlight == -3)
                {
                    ViewBag.Message = "The plane UNIQUE id must be unique...";
                    return(View());
                }
            }
            return(this.RedirectToAction("ListFlights", "Flight"));
        }
コード例 #4
0
 public ActionResult EditFlight(EditFlightViewModel _flight)
 {
     if (_flight.Id > 0)
     {
         if (_flight.Arraival > DateTime.Now && _flight.Departure > DateTime.Now && _flight.Price > 0 && _flight.Total > 0 &&
             _flight.Arraival >= _flight.Departure)
         {
             Flight flight = flightMethods.Get(_flight.Id);
             flight.Departure             = _flight.Departure;
             flight.Arrival               = _flight.Arraival;
             flight.FromCountry           = _flight.FromCountry;
             flight.FromCity              = _flight.FromCity;
             flight.ToCountry             = _flight.ToCountry;
             flight.ToCity                = _flight.ToCity;
             flight.Price                 = _flight.Price;
             flight.TotalNumberPassengers = _flight.Total;
             flightMethods.Edit(flight);
             logger.Info($"Edited fligth: Id: {flight.Id}, Departure: {flight.Departure.ToShortDateString()}, Arrival: {flight.Arrival.ToShortDateString()}, FCity: {flight.FromCity}," +
                         $"FCountry: {flight.FromCountry}, TCity: {flight.ToCity}, TCountry: {flight.ToCountry}, By: {HttpContext.User.Identity.Name}");
             return(RedirectToAction("AllFlights", "Admin"));
         }
         else
         {
             return(View(_flight));
         }
     }
     else
     {
         return(View("Error404"));
     }
 }
コード例 #5
0
ファイル: FlightsController.cs プロジェクト: cakasa/ITCAir
        public IActionResult EditFlight(int?id)
        {
            if (context.Flights.Any(x => x.Id == id))
            {
                Flight flightToEdit       = context.Flights.Find(id);
                EditFlightViewModel model = new EditFlightViewModel()
                {
                    Id               = flightToEdit.Id,
                    From             = flightToEdit.From,
                    To               = flightToEdit.To,
                    DateOfArrival    = flightToEdit.Arrival.Date,
                    TimeOfArrival    = flightToEdit.Arrival.TimeOfDay,
                    DateOfDeparture  = flightToEdit.Departure.Date,
                    TimeOfDeparture  = flightToEdit.Departure.TimeOfDay,
                    PlaneId          = flightToEdit.PlaneId,
                    PlaneModel       = flightToEdit.PlaneModel,
                    PilotName        = flightToEdit.PilotName,
                    EconomyCapacity  = flightToEdit.EconomyCapacity,
                    BusinessCapacity = flightToEdit.BusinessCapacity
                };

                ViewData["Error"] = string.Empty;
                return(View(model));
            }
            return(View("Flights", GetAllUpcomingFlights()));
        }
コード例 #6
0
        public async Task <IActionResult> Edit(int id)
        {
            Flight flight = await _flights.GetFlightByIdAsync(id);

            EditFlightViewModel model    = _mapper.Map <EditFlightViewModel>(flight);
            List <Airline>      airlines = await _airlines.GetAirlinesAsync();

            model.SetAirlines(airlines);
            return(View(model));
        }
コード例 #7
0
ファイル: FlightsController.cs プロジェクト: cakasa/ITCAir
        public IActionResult EditFlight(EditFlightViewModel model)
        {
            if (ModelState.IsValid)
            {
                Flight flightToEdit = context.Flights.Find(model.Id);
                flightToEdit.Id               = model.Id;
                flightToEdit.From             = model.From;
                flightToEdit.To               = model.To;
                flightToEdit.PlaneId          = model.PlaneId;
                flightToEdit.PlaneModel       = model.PlaneModel;
                flightToEdit.PilotName        = model.PilotName;
                flightToEdit.BusinessCapacity = model.BusinessCapacity;
                flightToEdit.EconomyCapacity  = model.EconomyCapacity;
                flightToEdit.Arrival          = new DateTime(model.DateOfArrival.Year,
                                                             model.DateOfArrival.Month,
                                                             model.DateOfArrival.Day,
                                                             model.TimeOfArrival.Hours,
                                                             model.TimeOfArrival.Minutes,
                                                             0);
                flightToEdit.Departure = new DateTime(model.DateOfDeparture.Year,
                                                      model.DateOfDeparture.Month,
                                                      model.DateOfDeparture.Day,
                                                      model.TimeOfDeparture.Hours,
                                                      model.TimeOfDeparture.Minutes,
                                                      0);

                if (flightToEdit.Arrival < flightToEdit.Departure)
                {
                    ViewData["Error"] = "Arrival cannot be before Departure!";
                    return(View(model));
                }
                else if (flightToEdit.Departure < DateTime.Now)
                {
                    ViewData["Error"] = "Date of departure should be after today";
                    return(View(model));
                }
                try
                {
                    context.Update(flightToEdit);
                    context.SaveChanges();
                    return(View("Flights", GetAllUpcomingFlights()));
                }
                catch
                {
                    ViewData["Error"] = "Something went wrong";
                    return(View(model));
                }
            }
            ViewData["Error"] = "Something went wrong";
            return(View(model));
        }
コード例 #8
0
        public async Task EditPost_SameAirports_ReturnsError()
        {
            // Arrange
            var flightId  = Guid.NewGuid();
            var airportId = Guid.NewGuid();
            var viewModel = new EditFlightViewModel
            {
                FlightId             = flightId,
                DepartureAirportId   = airportId,
                DestinationAirportId = airportId
            };

            var flight           = _fixture.Create <Flight>();
            var expectedAirports = _fixture.CreateMany <Airport>().ToList();

            _mediatorMock
            .Setup(x => x.Send(
                       It.IsAny <AirportAll.Query>(),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(expectedAirports);

            _mediatorMock
            .Setup(x => x.Send(
                       It.IsAny <FlightById.Query>(),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(flight);

            var target = new FlightsController(_mediatorMock.Object);

            // Act
            var result = await target.Edit(viewModel);

            // Assert
            var viewResult = result
                             .Should()
                             .BeOfType <ViewResult>().Subject;

            var model = viewResult.ViewData.Model
                        .Should()
                        .BeOfType <EditFlightViewModel>().Subject;

            model.Airports
            .Should()
            .HaveCount(expectedAirports.Count);

            target.ModelState.IsValid.Should().BeFalse();
        }
コード例 #9
0
        public IActionResult EditFlight(int id)
        {
            Flight flight = context.Flights.Find(id);

            EditFlightViewModel model = new EditFlightViewModel
            {
                DepartureLocation = flight.DepartureLocation,
                LandingLocation   = flight.LandingLocation,
                DepartureDateTime = flight.DepartureDateTime,
                LandingDateTime   = flight.LandingDateTime,
                PlaneType         = flight.PlaneType,
                PlaneUniqueId     = flight.PlaneUniqueId,
                PilotName         = flight.PilotName,
                RegularSeats      = flight.RegularSeats,
                BusinessSeats     = flight.BusinessSeats
            };

            return(this.View(model));
        }
コード例 #10
0
        public async Task <IActionResult> Edit(EditFlightViewModel model)
        {
            IActionResult result;

            if (ModelState.IsValid)
            {
                DateTime start = CombineDateAndTime(model.StartDate, model.StartTime);
                DateTime end   = CombineDateAndTime(model.EndDate, model.EndTime);

                Flight flight = await _flights.UpdateFlightAsync(
                    model.Id,
                    model.DroneId,
                    model.LocationId,
                    model.OperatorId,
                    start,
                    end);

                // Redirect to the flight details/properties page
                result = RedirectToAction("Index", "FlightDetails", new { id = flight.Id });
            }
            else
            {
                // If the model state isn't valid, load the lists of drones,
                // locations and operators and redisplay the flight logging page
                List <Drone> drones = await _drones.GetDronesAsync();

                List <Location> locations = await _locations.GetLocationsAsync();

                List <Operator> operators = await _operators.GetOperatorsAsync();

                model.SetDrones(drones);
                model.SetLocations(locations);
                model.SetOperators(operators);

                result = View(model);
            }

            return(result);
        }
コード例 #11
0
        public async Task <IActionResult> Edit(EditFlightViewModel model)
        {
            if (model.DepartureAirportId == model.DestinationAirportId)
            {
                ModelState.AddModelError(string.Empty, DefaultMessages.SameAirportErrorMessage);

                var viewModel = await GetEditFlightViewModel(model.FlightId);

                return(View(viewModel));
            }

            var updateFlightCommand = new FlightUpdate.Command(
                model.FlightId,
                model.DepartureAirportId,
                model.DestinationAirportId);

            await _mediator.Send(updateFlightCommand);

            TempData[nameof(DefaultMessages.FlightUpdatedMessage)] = DefaultMessages.FlightUpdatedMessage;

            return(RedirectToAction(nameof(Index)));
        }
コード例 #12
0
        public async Task <IActionResult> Edit(int id)
        {
            List <Drone> drones = await _drones.GetDronesAsync();

            List <Location> locations = await _locations.GetLocationsAsync();

            List <Operator> operators = await _operators.GetOperatorsAsync();

            Flight flight = await _flights.GetFlightAsync(id);

            EditFlightViewModel model = _mapper.Map <EditFlightViewModel>(flight);

            model.SetDrones(drones);
            model.SetLocations(locations);
            model.SetOperators(operators);

            model.StartDate = model.Start.ToString("MM/dd/yyyy");
            model.StartTime = model.Start.ToString("HH:mm");
            model.EndDate   = model.End.ToString("MM/dd/yyyy");
            model.EndTime   = model.Start.ToString("HH:mm");

            return(View(model));
        }
コード例 #13
0
 public EditFlight(TripModel trip)
 {
     InitializeComponent();
     DataContext = new EditFlightViewModel(trip);
 }
コード例 #14
0
        public async Task <IActionResult> Edit(EditFlightViewModel model)
        {
            byte[] empIdBytes = new byte[200];
            if (HttpContext.Session.TryGetValue("empId", out empIdBytes))
            {
                int employeeId = int.Parse(Encoding.UTF8.GetString(empIdBytes));
                if (employeeId == 1)
                {
                    List <Employee> employees = (from emp in _context.Employees
                                                 where
                                                 emp.Id == employeeId
                                                 select emp).ToList();
                    Employee employee = employees[0];
                    ViewData["username"]   = employee.Username;
                    ViewData["isLoggedIn"] = true;
                    ViewData["isAdmin"]    = true;

                    if (ModelState.IsValid)
                    {
                        Flight flight = new Flight
                        {
                            Id              = model.Id,
                            LocationFromId  = model.LocationFromId,
                            LocationToId    = model.LocationToId,
                            TakeOffDateTime = model.TakeOffDateTime,
                            LandingDateTime = model.LandingDateTime,
                            PlaneId         = model.PlaneId
                        };

                        try
                        {
                            _context.Update(flight);
                            await _context.SaveChangesAsync();
                        }
                        catch (DbUpdateConcurrencyException)
                        {
                            if (!IsFlightExists(flight.Id))
                            {
                                return(NotFound());
                            }
                            else
                            {
                                throw;
                            }
                        }

                        return(RedirectToAction(nameof(Index)));
                    }

                    return(View(model));
                }
                else if (employeeId != 1 && employeeId > 0)
                {
                    List <Employee> employees = (from emp in _context.Employees
                                                 where emp.Id == employeeId
                                                 select emp).ToList();
                    Employee employee = employees[0];
                    ViewData["username"]   = employee.Username;
                    ViewData["isLoggedIn"] = true;
                    ViewData["isAdmin"]    = false;

                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    ViewData["isLoggedIn"] = false;
                    ViewData["isAdmin"]    = false;

                    return(RedirectToAction(nameof(Index)));
                }
            }
            else
            {
                ViewData["isLoggedIn"] = false;
                ViewData["isAdmin"]    = false;

                return(RedirectToAction(nameof(Index)));
            }
        }
コード例 #15
0
        public async Task <IActionResult> Edit(int?id)
        {
            byte[] empIdBytes = new byte[200];
            if (HttpContext.Session.TryGetValue("empId", out empIdBytes))
            {
                int employeeId = int.Parse(Encoding.UTF8.GetString(empIdBytes));
                if (employeeId == 1)
                {
                    List <Employee> employees = (from emp in _context.Employees
                                                 where
                                                 emp.Id == employeeId
                                                 select emp).ToList();
                    Employee employee = employees[0];
                    ViewData["username"]   = employee.Username;
                    ViewData["isLoggedIn"] = true;
                    ViewData["isAdmin"]    = true;

                    if (id == null)
                    {
                        return(NotFound());
                    }

                    Flight flight = await _context.Flights.FindAsync(id);

                    if (flight == null)
                    {
                        return(NotFound());
                    }

                    EditFlightViewModel model = new EditFlightViewModel
                    {
                        LocationFromId  = flight.LocationFromId,
                        LocationToId    = flight.LocationToId,
                        TakeOffDateTime = flight.TakeOffDateTime,
                        LandingDateTime = flight.LandingDateTime,
                        PlaneId         = flight.PlaneId
                    };

                    List <Plane> planes = (from p in _context.Planes select p).ToList();

                    ViewData["locationFrom"] = _context.Addresses.Find(flight.LocationFromId);
                    ViewData["locationTo"]   = _context.Addresses.Find(flight.LocationToId);
                    ViewData["plane"]        = _context.Planes.Find(flight.PlaneId);
                    ViewData["flight"]       = _context.Flights.Find(flight.Id);
                    ViewData["allPlanes"]    = planes;

                    return(View(model));
                }
                else if (employeeId != 1 && employeeId > 0)
                {
                    List <Employee> employees = (from emp in _context.Employees
                                                 where emp.Id == employeeId
                                                 select emp).ToList();
                    Employee employee = employees[0];
                    ViewData["username"]   = employee.Username;
                    ViewData["isLoggedIn"] = true;
                    ViewData["isAdmin"]    = false;

                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    ViewData["isLoggedIn"] = false;
                    ViewData["isAdmin"]    = false;

                    return(RedirectToAction(nameof(Index)));
                }
            }
            else
            {
                ViewData["isLoggedIn"] = false;
                ViewData["isAdmin"]    = false;

                return(RedirectToAction(nameof(Index)));
            }
        }
コード例 #16
0
        readonly EditFlightViewModel ViewModel; // Our variable to hold the view model.

        public EditFlightDialog(Flight flight)
        {
            this.InitializeComponent();
            ViewModel = new(flight); // Construct the view model.
        }