/// <summary> /// Метод перевода коллекции в json-строку /// </summary> /// <typeparam name="T">Тип обобощенной коллекции</typeparam> /// <param name="aer">Коллекция</param> /// <returns>json-строка с объектами коллекции</returns> public static string ConvertToString <T>(this Aeroport <T> aer) where T : IPassengerAviation <IEngine> { ExtensionLogger.Log("Вызван метод конвертации коллекции в строку"); var wrapper = new AeroportWrapper <T>(aer); return(JsonConvert.SerializeObject(wrapper, Formatting.Indented)); }
/// <summary> /// Находит первое вхождение судна, у которого имеется достаточно свободных мест /// </summary> /// <param name="aer">Коллекция</param> /// <returns>Судно, либо null, если таковых не найдено</returns> public static IPassengerAviation <IEngine> FindByFreePlaces(this Aeroport <IPassengerAviation <IEngine> > aer, int places) { ExtensionLogger.Log("Вызван метод поиска пустого судна"); foreach (var aero in aer) { if (aero.Capacity - aero.Engaged > places) { return(aero); } } return(null); }
/// <summary> /// Возвращает все пустые воздушные судна из коллекции /// </summary> /// <typeparam name="T">тип обобщенной коллекции</typeparam> /// <param name="aer">Коллекция пустых самолетов</param> /// <returns></returns> public static Aeroport <T> FindAllEmpty <T>(this Aeroport <T> aer) where T : IPassengerAviation <IEngine> { ExtensionLogger.Log("Вызван метод поиска всех пустых суден"); var res = new Aeroport <T>("temp"); foreach (var aero in aer) { if (aero.Engaged == 0) { res.Add(aero); } } return(res); }