Skip to content

Commit faf07eb

Browse files
committed
Move sem-dom count updates into WordService
1 parent a372fac commit faf07eb

File tree

11 files changed

+45
-31
lines changed

11 files changed

+45
-31
lines changed

Backend.Tests/Controllers/AudioControllerTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,11 @@ public void Dispose()
3535
public void Setup()
3636
{
3737
_projRepo = new ProjectRepositoryMock();
38+
var semDomCountRepo = new SemanticDomainCountRepositoryMock();
3839
_wordRepo = new WordRepositoryMock();
3940
_permissionService = new PermissionServiceMock();
40-
var semDomCountService = new SemanticDomainCountService(new SemanticDomainCountRepositoryMock());
41-
_wordService = new WordService(_wordRepo, semDomCountService);
41+
var semDomCountService = new SemanticDomainCountService(semDomCountRepo);
42+
_wordService = new WordService(semDomCountRepo, _wordRepo, semDomCountService);
4243
_audioController = new AudioController(_wordRepo, _wordService, _permissionService);
4344

4445
_projId = _projRepo.Create(new Project { Name = "AudioControllerTests" }).Result!.Id;

Backend.Tests/Controllers/LiftControllerTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ public void Setup()
5151
_wordRepo = new WordRepositoryMock();
5252
_liftService = new LiftService();
5353
var semDomCountService = new SemanticDomainCountService(semDomCountRepo);
54-
_wordService = new WordService(_wordRepo, semDomCountService);
54+
_wordService = new WordService(semDomCountRepo, _wordRepo, semDomCountService);
5555
_liftController = new LiftController(_projRepo, new SemanticDomainRepositoryMock(), semDomCountRepo,
5656
_speakerRepo, _wordRepo, _liftService, new HubContextMock<ExportHub>(), new PermissionServiceMock(),
57-
semDomCountService, new MockLogger());
57+
_wordService, new MockLogger());
5858

5959
_projId = _projRepo.Create(new Project { Name = ProjName }).Result!.Id;
6060
_file = new FormFile(_stream, 0, _stream.Length, "Name", FileName);

Backend.Tests/Controllers/MergeControllerTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,10 @@ public void Setup()
3838
new ServiceCollection().AddMemoryCache().BuildServiceProvider().GetRequiredService<IMemoryCache>();
3939
_mergeBlacklistRepo = new MergeBlacklistRepositoryMock();
4040
_mergeGraylistRepo = new MergeGraylistRepositoryMock();
41+
var semDomCountRepo = new SemanticDomainCountRepositoryMock();
4142
_wordRepo = new WordRepositoryMock();
42-
var semDomCountService = new SemanticDomainCountService(new SemanticDomainCountRepositoryMock());
43-
_wordService = new WordService(_wordRepo, semDomCountService);
43+
var semDomCountService = new SemanticDomainCountService(semDomCountRepo);
44+
_wordService = new WordService(semDomCountRepo, _wordRepo, semDomCountService);
4445
_mergeService = new MergeService(_cache, _mergeBlacklistRepo, _mergeGraylistRepo, _wordRepo, _wordService);
4546
var notifyService = new HubContextMock<MergeHub>();
4647
var permissionService = new PermissionServiceMock();

Backend.Tests/Controllers/WordControllerTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ public void Dispose()
3131
[SetUp]
3232
public void Setup()
3333
{
34+
var semDomCountRepo = new SemanticDomainCountRepositoryMock();
3435
_wordRepo = new WordRepositoryMock();
35-
var semDomCountService = new SemanticDomainCountService(new SemanticDomainCountRepositoryMock());
36-
_wordService = new WordService(_wordRepo, semDomCountService);
36+
var semDomCountService = new SemanticDomainCountService(semDomCountRepo);
37+
_wordService = new WordService(semDomCountRepo, _wordRepo, semDomCountService);
3738
_permissionService = new PermissionServiceMock();
3839
_wordController = new WordController(_wordRepo, _wordService, _permissionService);
3940
}

Backend.Tests/Services/MergeServiceTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ public void Setup()
3030
new ServiceCollection().AddMemoryCache().BuildServiceProvider().GetRequiredService<IMemoryCache>();
3131
_mergeBlacklistRepo = new MergeBlacklistRepositoryMock();
3232
_mergeGraylistRepo = new MergeGraylistRepositoryMock();
33+
var semDomCountRepo = new SemanticDomainCountRepositoryMock();
3334
_wordRepo = new WordRepositoryMock();
34-
var semDomCountService = new SemanticDomainCountService(new SemanticDomainCountRepositoryMock());
35-
_wordService = new WordService(_wordRepo, semDomCountService);
35+
var semDomCountService = new SemanticDomainCountService(semDomCountRepo);
36+
_wordService = new WordService(semDomCountRepo, _wordRepo, semDomCountService);
3637
_mergeService = new MergeService(_cache, _mergeBlacklistRepo, _mergeGraylistRepo, _wordRepo, _wordService);
3738
}
3839

Backend.Tests/Services/WordServiceTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ internal sealed class WordServiceTests
1919
[SetUp]
2020
public void Setup()
2121
{
22+
var semDomCountRepo = new SemanticDomainCountRepositoryMock();
2223
_wordRepo = new WordRepositoryMock();
23-
var semDomCountService = new SemanticDomainCountService(new SemanticDomainCountRepositoryMock());
24-
_wordService = new WordService(_wordRepo, semDomCountService);
24+
var semDomCountService = new SemanticDomainCountService(semDomCountRepo);
25+
_wordService = new WordService(semDomCountRepo, _wordRepo, semDomCountService);
2526
}
2627

2728
[Test]

Backend/Controllers/LiftController.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ namespace BackendFramework.Controllers
2525
public class LiftController(IProjectRepository projRepo, ISemanticDomainRepository semDomRepo,
2626
ISemanticDomainCountRepository semDomCountRepository, ISpeakerRepository speakerRepo, IWordRepository wordRepo,
2727
ILiftService liftService, IHubContext<ExportHub> notifyService, IPermissionService permissionService,
28-
ISemanticDomainCountService semDomCountService, ILogger<LiftController> logger) : Controller
28+
IWordService wordService, ILogger<LiftController> logger) : Controller
2929
{
3030
private readonly IProjectRepository _projRepo = projRepo;
3131
private readonly ISemanticDomainRepository _semDomRepo = semDomRepo;
@@ -35,7 +35,7 @@ public class LiftController(IProjectRepository projRepo, ISemanticDomainReposito
3535
private readonly ILiftService _liftService = liftService;
3636
private readonly IHubContext<ExportHub> _notifyService = notifyService;
3737
private readonly IPermissionService _permissionService = permissionService;
38-
private readonly ISemanticDomainCountService _semDomCountService = semDomCountService;
38+
private readonly IWordService _wordService = wordService;
3939
private readonly ILogger<LiftController> _logger = logger;
4040

4141
private const string otelTagName = "otel.LiftController";
@@ -111,8 +111,7 @@ public async Task<IActionResult> DeleteFrontierAndFinishUploadLiftFile(string pr
111111
}
112112

113113
// Delete all frontier words and load the LIFT data
114-
await _wordRepo.DeleteAllFrontierWords(projectId);
115-
await _semDomCountRepository.DeleteAllCounts(projectId);
114+
await _wordService.ClearFrontier(projectId);
116115
return await FinishUploadLiftFile(projectId, userId, true);
117116
}
118117

@@ -264,8 +263,8 @@ private async Task<IActionResult> AddImportToProject(string liftStoragePath, str
264263

265264
int countWordsImported;
266265
// Sets the projectId of our parser to add words to that project
267-
var liftMerger = _liftService.GetLiftImporterExporter(
268-
projectId, proj.VernacularWritingSystem.Bcp47, _wordRepo, _semDomCountService);
266+
var liftMerger =
267+
_liftService.GetLiftImporterExporter(projectId, proj.VernacularWritingSystem.Bcp47, _wordService);
269268
var importedAnalysisWritingSystems = new List<WritingSystem>();
270269
var doesImportHaveDefinitions = false;
271270
var doesImportHaveGrammaticalInfo = false;

Backend/Interfaces/ILiftService.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ namespace BackendFramework.Interfaces
88
{
99
public interface ILiftService : IDisposable
1010
{
11-
ILiftMerger GetLiftImporterExporter(string projectId, string vernLang, IWordRepository wordRepo,
12-
ISemanticDomainCountService semDomCountService);
11+
ILiftMerger GetLiftImporterExporter(string projectId, string vernLang, IWordService wordService);
1312
Task<bool> LdmlImport(string dirPath, IProjectRepository projRepo, Project project);
1413
Task<string> LiftExport(string projectId, IProjectRepository projRepo, ISemanticDomainRepository semDomRepo,
1514
ISpeakerRepository speakerRepo, IWordRepository wordRepo);

Backend/Interfaces/IWordService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public interface IWordService
1414
Task<int> DeleteFrontierWords(string projectId, List<string> wordIds);
1515
Task<string?> MakeFrontierDeleted(string projectId, string userId, string wordId);
1616
Task<bool> RestoreFrontierWords(string projectId, List<string> wordIds);
17+
Task<bool> ClearFrontier(string projectId);
1718
Task<string?> FindContainingWord(Word word);
1819
}
1920
}

Backend/Services/LiftService.cs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -670,10 +670,9 @@ public static string MakeSafeXmlAttribute(string sInput)
670670
return SecurityElement.Escape(sInput);
671671
}
672672

673-
public ILiftMerger GetLiftImporterExporter(string projectId, string vernLang, IWordRepository wordRepo,
674-
ISemanticDomainCountService semDomCountService)
673+
public ILiftMerger GetLiftImporterExporter(string projectId, string vernLang, IWordService wordService)
675674
{
676-
return new LiftMerger(projectId, vernLang, wordRepo, semDomCountService);
675+
return new LiftMerger(projectId, vernLang, wordService);
677676
}
678677

679678
private static void WriteRangeElement(XmlWriter liftRangesWriter,
@@ -707,13 +706,11 @@ private static void WriteFormElement(XmlWriter liftRangesWriter, string element,
707706
liftRangesWriter.WriteEndElement(); // end element
708707
}
709708

710-
private sealed class LiftMerger(string projectId, string vernLang, IWordRepository wordRepo,
711-
ISemanticDomainCountService semDomCountService) : ILiftMerger
709+
private sealed class LiftMerger(string projectId, string vernLang, IWordService wordService) : ILiftMerger
712710
{
713711
private readonly string _projectId = projectId;
714712
private readonly string _vernLang = vernLang;
715-
private readonly IWordRepository _wordRepo = wordRepo;
716-
private readonly ISemanticDomainCountService _semDomCountService = semDomCountService;
713+
private readonly IWordService _wordService = wordService;
717714

718715
private readonly List<SemanticDomainFull> _customSemDoms = [];
719716
private readonly List<Word> _importEntries = [];
@@ -764,8 +761,7 @@ public List<WritingSystem> GetImportAnalysisWritingSystems()
764761
/// <returns> The words saved. </returns>
765762
public async Task<List<Word>> SaveImportEntries()
766763
{
767-
var savedWords = new List<Word>(await _wordRepo.Create(_importEntries));
768-
await _semDomCountService.UpdateCountsForWords(savedWords);
764+
var savedWords = new List<Word>(await _wordService.Create("", _importEntries));
769765
_importEntries.Clear();
770766
return savedWords;
771767
}

0 commit comments

Comments
 (0)