Пример #1
0
        private async Task InitPlane()
        {
            var airPortFrom = new Airport
            {
                Name    = "Brussels Airport",
                Code    = "BRS",
                Country = "BElGIUM"
            };
            var airPortTo = new Airport
            {
                Name    = "John F Kennedy (JFK). ",
                Code    = "JFK",
                Country = "AMERICA"
            };
            var plane = new Plane(new FlightInfo(airPortFrom, airPortTo, DateTime.Now, DateTime.Now.AddHours(8)),
                                  new Catalog())
            {
                TailNumber = "LMAO42069",
                Type       = "AIRBUS A380"
            };

            for (var i = 1; i < 20; i++)
            {
                if (i < 4)
                {
                    plane.AddSeat("A", i, FlightClass.Business);
                    plane.AddSeat("B", i, FlightClass.Business);
                    plane.AddSeat("C", i, FlightClass.Business);
                    plane.AddSeat("D", i, FlightClass.Business);
                    plane.AddSeat("E", i, FlightClass.Business);
                    plane.AddSeat("F", i, FlightClass.Business);
                }
                else
                {
                    plane.AddSeat("A", i, FlightClass.Economy);
                    plane.AddSeat("B", i, FlightClass.Economy);
                    plane.AddSeat("C", i, FlightClass.Economy);
                    plane.AddSeat("D", i, FlightClass.Economy);
                    plane.AddSeat("E", i, FlightClass.Economy);
                    plane.AddSeat("F", i, FlightClass.Economy);
                }
            }
            _context.Plane.Add(plane);
            _context.SaveChanges();

            plane = _context.Plane.Include(p => p.Seats).FirstOrDefault();


            for (var i = 1; i < 20; i++)
            {
                var list = new List <string>()
                {
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                };

                foreach (var c in list)
                {
                    var passenger = new Passenger()
                    {
                        ReservationCode = "resvcode" + i + c,
                        UserName        = "******" + i + c
                    };
                    plane.AssingPassengerToSeat(passenger, c, i);
                    var a = await _userManager.CreateAsync(passenger, "Test123!");

                    if (a != IdentityResult.Success)
                    {
                        continue;
                    }
                }
            }

            for (var i = 0; i < 4; i++)
            {
                var crewMem = new CabinCrew()
                {
                    UserName = "******" + i,
                };
                var a = await _userManager.CreateAsync(crewMem, "Test123!");

                if (a != IdentityResult.Success)
                {
                    continue;
                }
                var crewManInit = await _userManager.FindByNameAsync("CrewMem" + i);

                plane.PutCrewManToWork(crewManInit as CabinCrew);
            }


            plane.Catalog       = new Catalog();
            plane.Catalog.Items = new List <CatalogItem>();
            plane.Catalog.Items.AddRange((InitMovies.GetVideos()));

            plane.Catalog.Items.AddRange((AudioInit.GetAudio()));
            plane.Catalog.Items.AddRange((FoodInit.getFoods()));
            plane.Catalog.Items.AddRange((InitBeverage.GetBeverages()));
            //    plane.Catalog.Items.Add(new);
            var passengrs = plane.Seats.Select(p => p.Passenger).OrderBy(p => p.Id).ToList();

            var groups = SplitList <Passenger>(passengrs);

            foreach (var item in groups)
            {
                var group = new ReservationGroup
                {
                    Passengers = new List <Passenger>()
                };
                group.Passengers.AddRange(item);
                _context.ReservationGroups.Add(group);
            }
            _context.SaveChanges();
        }