Skip to content

Commit 0790103

Browse files
committed
(#12) Add repository class IngestionService that can load configurations from a jsonfile
1 parent 377ae66 commit 0790103

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed

Src/Ingestion/IngestionService.cs

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.IO;
4+
using System.Text;
5+
using Newtonsoft.Json;
6+
7+
namespace Ingestion
8+
{
9+
public class IngestionService
10+
{
11+
12+
private IList<IngestionSource> _sourcesList;
13+
private const string _sourcesConfigRelativePath = "config/ingestion_sources.json";
14+
15+
public IngestionService(IList<IngestionSource> sources)
16+
{
17+
_sourcesList = sources;
18+
}
19+
20+
public IngestionService()
21+
{
22+
_sourcesList = LoadSourcesFromJson();
23+
24+
}
25+
26+
// Due to sercurity concerns sources are either injected
27+
//or loaded from config files
28+
private IList<IngestionSource> LoadSourcesFromJson()
29+
{
30+
string json = "";
31+
32+
// deserialize JSON directly from a file
33+
using (StreamReader file = File.OpenText(_sourcesConfigRelativePath))
34+
{
35+
36+
}
37+
38+
List<string> videogames = JsonConvert.DeserializeObject<List<string>>(json);
39+
40+
Console.WriteLine(string.Join(", ", videogames.ToArray()));
41+
return null;
42+
}
43+
44+
public void Ingest(int sourceID) {
45+
foreach (IngestionSource source in _sourcesList) {
46+
47+
}
48+
49+
PutInMessageQueue();
50+
51+
}
52+
53+
private void PutInMessageQueue()
54+
{
55+
throw new NotImplementedException();
56+
}
57+
}
58+
}

Src/Ingestion/IngestionSource.cs

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
5+
namespace Ingestion
6+
{
7+
public class IngestionSource
8+
{
9+
public string ApiUrl { get; set; }
10+
public string Credential { get; set; }
11+
public string ForwardMessageQueue { get; set; }
12+
}
13+
}

0 commit comments

Comments
 (0)