public static async Task<bool> ExistsAsync(Flight flight) { using (var context = new AirlinesContext()) { return await context.FlightSet.FirstOrDefaultAsync(u => u.DepartureCountry.Equals(flight.DepartureCountry) && u.ArrivalCountry.Equals(flight.ArrivalCountry)) != default(Flight); } }
/// <summary> /// Добавляет рейс в бд /// При этом считается что все необходимые проверки уже были выполнены /// То есть данные заполнены правильно и такого рейса нет в бд /// </summary> public static async Task<bool> AddFlightAsync(Flight flight) { System.Console.WriteLine("AddFlight "); using (var context = new AirlinesContext()) { try { context.FlightSet.Add(flight); await context.SaveChangesAsync(); } catch (Exception) { return false; } } return true; }
/// <summary> /// Формируем рейс из данных из текст-боксов /// И вызываем метод добавления рейса в базу данных /// Если рейс добавлен успешно -- выводим сообщение и отправляем /// сообщение в AdministratorViewModel для того чтобы обновился список рейсов /// В случае ошибки -- выводим сообщение /// </summary> private async Task AddFlightAsync() { string[] atime; string[] adate; string[] dtime; string[] ddate; // Как эти строки ниже должны работать? // Разделяет он правильно, я проверила atime = this.ATime.Split(':'); adate = this.ADate.Split('.'); dtime = this.DTime.Split(':'); ddate = this.DDate.Split('.'); var flight = new Flight { ArrivalTime = new DateTime(Convert.ToInt16(adate[2]), Convert.ToInt16(adate[1]), Convert.ToInt16(adate[0]), Convert.ToInt16(atime[0]), Convert.ToInt16(atime[1]), 00), DepartureTime = new DateTime(Convert.ToInt16(ddate[2]), Convert.ToInt16(ddate[1]), Convert.ToInt16(ddate[0]), Convert.ToInt16(dtime[0]), Convert.ToInt16(dtime[1]), 00), ArrivalCountry = this.Arrival, DepartureCountry = this.Departure, IsComplete=false, AirplanePilot = new AirplanePilot{ Pilot = Pilot , Airplane=Airplane}, }; Console.WriteLine("sadsad"); var exists = await FlightService.ExistsAsync(flight); if (!exists) { var added = await FlightService.AddFlightAsync(flight); if (added) { MessageForeground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF00BCD4")); Info = $"Рейс { flight.Id} успешно добавлен."; Communication.Messenger.Default.Send(Communication.Message.Empty, Communication.Context.AddContext); FlushData(); } else Info = "Произошла ошибка при добавлении рейса"; } else { Info = "Данный рейс уже существует"; } }