public Report(Ticket[] tickets) { if (tickets.Length == 0) { return; } Tickets = tickets.Select(ticket => new TicketResult { ExecutionTime = ticket.ExecutionTime, Report = this, Title = ticket.Title, Id = ticket.Id, Status = ticket.Status.ToString() }).ToArray(); AverageExecutionTime = new TimeSpan(Convert.ToInt64(Tickets.Average(result => result.ExecutionTime.Ticks))); }
static void Main(string[] args) { //1 // проверка //var costs = Tickets.Select(c => c); //foreach (var item in costs) //{ // Console.Write(item.Cost + " "); //} Console.WriteLine("Пункт первый: "); var average = Tickets.Average(ticket => ticket.Cost); Console.WriteLine($"Среднее стоимость билета: {average} рублей"); Console.WriteLine("1.1"); var average1 = (from ticket in Tickets select ticket.Cost).Average(); Console.WriteLine($"Среднее стоимость билета: {average1} рублей"); //2 //проверка //var planes = Planes.Select(p => p); //foreach (var item in planes) //{ // Console.Write(item.Capacity + " "); //} Console.WriteLine("Пункт второй: "); int n = 150; var countPlanes = Planes.Where(plane => plane.Capacity > n).Count(); var countPlanes1 = (from plane in Planes where plane.Capacity > n select plane).Count(); Console.WriteLine($"Количество самолетов с вместимостью больше {n} человек: {countPlanes}"); Console.WriteLine("2.1"); Console.WriteLine($"Количество самолетов с вместимостью больше {n} человек: {countPlanes1}"); //3 Console.WriteLine("Пункт третий: "); var informationFlight = from flight in Flights join flightCrew in FlightCrews on flight.Id equals flightCrew.FlightId join employee in Employees on flightCrew.EmployeeId equals employee.Id select new { flight.Id, flight.PlaneId, flight.AirportArrivalId, flight.AirportDepartureId, flight.ArrivalDate, flight.DepartureDate, IdCrew = flightCrew.Id, employeeName = employee.LastName }; foreach (var fullFlight in informationFlight) { Console.WriteLine($"Id рейса: {fullFlight.Id}, модель самолета: {fullFlight.PlaneId}"); Console.WriteLine($"Дата прибытия: {fullFlight.ArrivalDate}, Аэропорт прибытия: {fullFlight.AirportArrivalId}"); Console.WriteLine($"Дата отбытия: {fullFlight.DepartureDate}, Аэропорт отбытия: {fullFlight.AirportArrivalId}"); Console.WriteLine($"Id экипажа: {fullFlight.IdCrew}, Сотрудник: {fullFlight.employeeName}"); } Console.WriteLine("3.1"); var informationFlight1 = Flights.Join(FlightCrews, f => f.Id, c => c.FlightId, (f, c) => new { f.Id, f.PlaneId, f.AirportArrivalId, f.AirportDepartureId, f.ArrivalDate, f.DepartureDate, IdCrew = c.Id }).Join(Employees, f => f.IdCrew, e => e.Id, (f, e) => new { f.Id, f.PlaneId, f.AirportArrivalId, f.AirportDepartureId, f.ArrivalDate, f.DepartureDate, f.IdCrew, e.LastName }); foreach (var fullFlight in informationFlight1) { Console.WriteLine($"Id рейса: {fullFlight.Id}, модель самолета: {fullFlight.PlaneId}"); Console.WriteLine($"Дата прибытия: {fullFlight.ArrivalDate}, Аэропорт прибытия: {fullFlight.AirportArrivalId}"); Console.WriteLine($"Дата отбытия: {fullFlight.DepartureDate}, Аэропорт отбытия: {fullFlight.AirportArrivalId}"); Console.WriteLine($"Id экипажа: {fullFlight.IdCrew}, Сотрудник: {fullFlight.LastName}"); } //4 Console.WriteLine("Пункт четвертый:"); var fullEmployee = from employee in Employees join position in Positions on employee.PositionId equals position.Id select new { employee.Id, employee.FirstName, employee.LastName, employee.WorkExperience, positionName = position.Name }; foreach (var employee in fullEmployee) { Console.WriteLine($"Id сотрудника: {employee.Id}, Полное имя сотрудника: {employee.FirstName}" + $"{employee.LastName}, Стаж работы: {employee.WorkExperience} лет, Занимаемая должность: {employee.positionName}"); } Console.WriteLine("4.1"); var fullEmployee1 = Employees.Join(Positions, e => e.PositionId, f => f.Id, (e, f) => new { e.Id, e.FirstName, e.LastName, e.WorkExperience, f.Name }); foreach (var employee in fullEmployee1) { Console.WriteLine($"Id сотрудника: {employee.Id}, Полное имя сотрудника: {employee.FirstName}" + $"{employee.LastName}, Стаж работы: {employee.WorkExperience} лет, Занимаемая должность: {employee.Name}"); } //5 Console.WriteLine("Пункт пятый:"); DateTime actulTime = new DateTime(2020, 06, 30); var sortedClients = from client in Clients join ticket in Tickets on client.Id equals ticket.ClientId join flight in Flights on ticket.FlightId equals flight.Id orderby client.BirthDate select new { client.Id, client.FirstName, client.LastName, ticketId = ticket.Id, flight.DepartureDate, client.BirthDate }; var clientWithTickets = from client in sortedClients where client.DepartureDate > actulTime select client; foreach (var client in clientWithTickets) { Console.WriteLine($"Id пассажира: {client.Id}, Полное имя: {client.FirstName} {client.LastName}" + $", Дата рождения: {client.BirthDate}, Дата отбытия: {client.DepartureDate}"); } Console.WriteLine("5.1"); var clientWithTickets1 = Clients.Join(Tickets, s => s.Id, t => t.ClientId, (s, t) => new { s.Id, s.FirstName, s.LastName, ticketId = t.Id, t.FlightId, s.BirthDate }).Join(Flights, s => s.FlightId, f => f.Id, (s, f) => new { s.Id, s.FirstName, s.LastName, ticketId = s.Id, s.BirthDate, f.DepartureDate }).OrderBy(s => s.BirthDate).Where(s => s.DepartureDate > actulTime); foreach (var client in clientWithTickets1) { Console.WriteLine($"Id пассажира: {client.Id}, Полное имя: {client.FirstName} {client.LastName}" + $", Дата рождения: {client.BirthDate}, Дата отбытия: {client.DepartureDate}"); } //6 Console.WriteLine("Пункт шестой: "); var sortedPlanes = from plane in Planes orderby plane.FlightHours, plane.IssueYear, plane.Capacity select plane; foreach (var plane in sortedPlanes) { Console.WriteLine($"Id самолета: {plane.Id}, Количество часов в полете: {plane.FlightHours}" + $", Год выпуска: {plane.IssueYear}, Вместимость самолета: {plane.Capacity}"); } Console.WriteLine("6.1"); var sortedPlanes1 = Planes.OrderBy(p => p.FlightHours).ThenBy(p => p.IssueYear).ThenBy(p => p.Capacity); foreach (var plane in sortedPlanes1) { Console.WriteLine($"Id самолета: {plane.Id}, Количество часов в полете: {plane.FlightHours}" + $", Год выпуска: {plane.IssueYear}, Вместимость самолета: {plane.Capacity}"); } //7 Console.WriteLine("Пункт седьмой:"); }