/// <summary> /// Выводит в консоль доступные для подключения URL адреса. /// </summary> /// <param name="httpListener"></param> private void PrintPrefixes(HttpListener httpListener) { ConsoleColorPrinter.WriteLineWithTime("Set next Prefixes:", ConsoleColor.Green, ConsoleColor.Yellow); foreach (string url in httpListener.Prefixes) { ConsoleColorPrinter.WriteLine($"\t{url}", ConsoleColor.Green); } }
public static (string folder, string file) CreateFolderAndHtmlFileWithTestText(DirectoryInfo whereToCreate) { DirectoryInfo tempFolder = null; FileInfo tempHtml = null; try { // Создание папки tempFolder = new DirectoryInfo(Path.Combine(whereToCreate.FullName, "tempFolder")); if (!tempFolder.Exists) { tempFolder.Create(); } // Создание пути к файлу index.html tempHtml = new FileInfo(Path.Combine(tempFolder.FullName, "index.html")); // Небольшая задержка - система наверняка начала обрабатывать появление нового файла Thread.Sleep(500); // Текст для файла string textToFile = "<html><head>Test page</head><body><h1>Bruh<br><h2>Mini bruh</body></html>"; // Запись небольшого текста в файл int magicNum = 0; while (magicNum != 43) { try { File.WriteAllText(tempHtml.FullName, textToFile); magicNum = 43; } catch (Exception) { ConsoleColorPrinter.WriteLineWithTime("File is busy...", ConsoleColor.White, ConsoleColor.Yellow); Thread.Sleep(500); } } return(tempFolder.FullName, tempHtml.FullName); } catch (Exception) { if (tempFolder != null) { if (tempFolder.Exists) { tempFolder.Delete(true); } } return(string.Empty, string.Empty); } }
/// <summary> /// Метод инициализирует запуск работы всех модулей программы. /// </summary> private void DoInitialisingOfAllComponents() { // Создание объекта, следящим за указанной директорией и управляющим буфером файлов; загружает файлы в буффер. DirectoryWorker.Start(); // Вывод служебной информации ConsoleColorPrinter.WriteLineWithTime($"Server on [{Dns.GetHostName()}] Started!", ConsoleColor.Green, ConsoleColor.Yellow); // Настройка слушателя http запросов и его запуск. httpListener = this.GetConfiguredListener(); httpListener.Start(); ConsoleColorPrinter.WriteLineWithTime("Start listening requests...\n", ConsoleColor.Green, ConsoleColor.Yellow); }
/// <summary> /// Очистка ресурсов, которые использует объект. Прерываются асинхронные операции, которые делаются на фоне. /// </summary> public void Shutdown() { try { if (httpListener.IsListening) { httpListener.Stop(); //logger.Debug("Listener stopped"); ConsoleColorPrinter.WriteLineWithTime("Listener stopped", ConsoleColor.DarkGreen, ConsoleColor.Yellow); } DirectoryWorker.Shutdown(); //logger.Debug("File system wathcer stopped"); ConsoleColorPrinter.WriteLineWithTime("File system watcher stopped", ConsoleColor.DarkGreen, ConsoleColor.Yellow); NLog.LogManager.Shutdown(); //logger.Debug("Logger stopped"); ConsoleColorPrinter.WriteLineWithTime("Logger stopped", ConsoleColor.DarkGreen, ConsoleColor.Yellow); } catch (Exception) { } }