Esempio n. 1
0
 /// <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);
            }
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
 /// <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) { }
 }