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(); }