示例#1
0
        public async Task DownloadFile(int index)
        {
            FileDetailsWithDownloadEndPoint fileDetails;

            try
            {
                fileDetails = this.fileList[index - 1];
            }
            catch (IndexOutOfRangeException)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Cảnh báo: Chỉ mục của tập tin vượt khoảng hợp lệ.");
                Console.ResetColor();

                return;
            }

            var fileServiceClient = new FileServiceClient(new FileServiceClientSettings()
            {
                FileName       = fileDetails.Name,
                FileServerIP   = fileDetails.DownloadIP,
                FileServerPort = fileDetails.DownloadPort
            });

            try
            {
                await fileServiceClient.Download();
            } catch (UnknownFileException)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine($"Thông báo: Tập tin {fileDetails.Name} không tồn tại trên File Server.");
                Console.ResetColor();
                return;
            } catch (CorruptedFileException)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine($"Thông báo: Tập tin {fileDetails.Name} không toàn vẹn trong quá trình truyền tải.");
                Console.ResetColor();
                return;
            }

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine($"Thông báo: Đã tải xong tập tin {fileDetails.Name}.");
            Console.ResetColor();
        }