diff --git a/src/FilterLists.Services/Implementations/TableService.cs b/src/FilterLists.Services/Implementations/TableService.cs
index 0ec59704c..6702ffc41 100644
--- a/src/FilterLists.Services/Implementations/TableService.cs
+++ b/src/FilterLists.Services/Implementations/TableService.cs
@@ -1,5 +1,5 @@
-using System.Net.Http;
-using System.Net.Http.Headers;
+using System.IO;
+using System.Net.Http;
using System.Threading.Tasks;
using FilterLists.Data.Repositories.Contracts;
using FilterLists.Services.Contracts;
@@ -36,6 +36,7 @@ public void UpdateTable(string tableName)
//TODO: fetch CSV URL from db table
const string csvUrl =
"https://raw.githubusercontent.com/collinbarrett/FilterLists/master/data/List.csv";
+ var file = FetchFile(csvUrl).Result;
break;
default:
//TODO: throw invalid table exception
@@ -50,9 +51,18 @@ public void UpdateTable(string tableName)
/// string of file
private static async Task FetchFile(string url)
{
- var httpClient = new HttpClient();
- httpClient.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("FilterLists", "1.0"));
- return await httpClient.GetStringAsync(url);
+ var client = new HttpClient();
+ var response = await client.GetAsync(url);
+ response.EnsureSuccessStatusCode();
+ var path = Path.Combine(Directory.GetCurrentDirectory(), "csv");
+ Directory.CreateDirectory(path);
+ var file = Path.Combine(path,"List.csv");
+ using (var fileStream = new FileStream(file, FileMode.Create, FileAccess.Write,
+ FileShare.None))
+ {
+ await response.Content.CopyToAsync(fileStream);
+ }
+ return file;
}
}
}
\ No newline at end of file