Skip to content

Commit fae2cd7

Browse files
pmachapmanNateowami
authored andcommitted
C# backend updates
1 parent ae77f4d commit fae2cd7

File tree

10 files changed

+479
-925
lines changed

10 files changed

+479
-925
lines changed

src/SIL.XForge.Scripture/Controllers/SFProjectsRpcController.cs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,12 +188,24 @@ public async Task<IRpcMethodResult> UpdateSettings(string projectId, SFProjectSe
188188
{ "CheckingAnswerExport", settings?.CheckingAnswerExport },
189189
{ "SourceParatextId", settings?.SourceParatextId },
190190
{ "BiblicalTermsEnabled", settings?.BiblicalTermsEnabled?.ToString() },
191-
{ "AdditionalTrainingDataFiles", settings?.AdditionalTrainingDataFiles?.ToString() },
192-
{ "AlternateSourceParatextId", settings?.AlternateSourceParatextId },
193-
{ "AlternateTrainingSourceEnabled", settings?.AlternateTrainingSourceEnabled?.ToString() },
194-
{ "AlternateTrainingSourceParatextId", settings?.AlternateTrainingSourceParatextId },
195-
{ "AdditionalTrainingSourceEnabled", settings?.AdditionalTrainingSourceEnabled?.ToString() },
196-
{ "AdditionalTrainingSourceParatextId", settings?.AdditionalTrainingSourceParatextId },
191+
{
192+
"AdditionalTrainingDataFiles",
193+
settings?.AdditionalTrainingDataFiles is null
194+
? null
195+
: string.Join(',', settings.AdditionalTrainingDataFiles)
196+
},
197+
{
198+
"DraftingSourcesParatextIds",
199+
settings?.DraftingSourcesParatextIds is null
200+
? null
201+
: string.Join(',', settings.DraftingSourcesParatextIds)
202+
},
203+
{
204+
"TrainingSourcesParatextIds",
205+
settings?.TrainingSourcesParatextIds is null
206+
? null
207+
: string.Join(',', settings.TrainingSourcesParatextIds)
208+
},
197209
{ "CheckingEnabled", settings?.CheckingEnabled?.ToString() },
198210
{ "TranslationSuggestionsEnabled", settings?.TranslationSuggestionsEnabled?.ToString() },
199211
{ "UsersSeeEachOthersResponses", settings?.UsersSeeEachOthersResponses?.ToString() },

src/SIL.XForge.Scripture/Models/DraftConfig.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,8 @@ namespace SIL.XForge.Scripture.Models;
44

55
public class DraftConfig
66
{
7-
public bool AdditionalTrainingSourceEnabled { get; set; }
8-
public TranslateSource? AdditionalTrainingSource { get; set; }
9-
public bool AlternateSourceEnabled { get; set; }
10-
public TranslateSource? AlternateSource { get; set; }
11-
public bool AlternateTrainingSourceEnabled { get; set; }
12-
public TranslateSource? AlternateTrainingSource { get; set; }
7+
public IList<TranslateSource> DraftingSources { get; set; } = [];
8+
public IList<TranslateSource> TrainingSources { get; set; } = [];
139
public IList<ProjectScriptureRange> LastSelectedTrainingScriptureRanges { get; set; } = [];
1410
public IList<string> LastSelectedTrainingDataFiles { get; set; } = [];
1511
public IList<ProjectScriptureRange> LastSelectedTranslationScriptureRanges { get; set; } = [];

src/SIL.XForge.Scripture/Models/SFProjectSettings.cs

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,16 @@ public class SFProjectSettings
1313
public bool? TranslationSuggestionsEnabled { get; set; }
1414
public string? SourceParatextId { get; set; }
1515
public bool? BiblicalTermsEnabled { get; set; }
16-
17-
[Obsolete("For backwards compatibility with older frontend clients. Deprecated November 2024.")]
18-
public bool? TranslateShareEnabled { get; set; }
19-
20-
// pre-translation settings
21-
[Obsolete("For backwards compatibility with older frontend clients. Deprecated June 2025.")]
22-
public bool? AdditionalTrainingData { get; set; }
2316
public IEnumerable<string>? AdditionalTrainingDataFiles { get; set; }
24-
public bool? AdditionalTrainingSourceEnabled { get; set; }
25-
public string? AdditionalTrainingSourceParatextId { get; set; }
17+
18+
[Obsolete("For backwards compatibility with older frontend clients. Deprecated October 2025.")]
2619
public bool? AlternateSourceEnabled { get; set; }
27-
public string? AlternateSourceParatextId { get; set; }
28-
public bool? AlternateTrainingSourceEnabled { get; set; }
29-
public string? AlternateTrainingSourceParatextId { get; set; }
20+
public IEnumerable<string>? DraftingSourcesParatextIds { get; set; }
21+
public IEnumerable<string>? TrainingSourcesParatextIds { get; set; }
3022

3123
// checking settings
3224
public bool? CheckingEnabled { get; set; }
3325
public bool? UsersSeeEachOthersResponses { get; set; }
34-
35-
[Obsolete("For backwards compatibility with older frontend clients. Deprecated November 2024.")]
36-
public bool? CheckingShareEnabled { get; set; }
3726
public string? CheckingAnswerExport { get; set; }
3827
public bool? HideCommunityCheckingText { get; set; }
3928

src/SIL.XForge.Scripture/Services/MachineApiService.cs

Lines changed: 6 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1991,48 +1991,12 @@ await projectDoc.SubmitJson0OpAsync(op =>
19911991
// We use project service, as it provides permission and token checks
19921992
string jobId = await projectService.SyncAsync(curUserId, buildConfig.ProjectId);
19931993

1994-
// Store the project ids in a hashset to prevent duplicates
1995-
HashSet<string> syncProjectIds = [];
1996-
1997-
// If we have an alternate source, sync that first
1998-
string alternateSourceProjectId = projectDoc.Data.TranslateConfig.DraftConfig.AlternateSource?.ProjectRef;
1999-
if (
2000-
projectDoc.Data.TranslateConfig.DraftConfig.AlternateSourceEnabled
2001-
&& !string.IsNullOrWhiteSpace(alternateSourceProjectId)
2002-
)
2003-
{
2004-
syncProjectIds.Add(alternateSourceProjectId);
2005-
}
2006-
2007-
// If we have an alternate training source, sync that next
2008-
string alternateTrainingSourceProjectId = projectDoc
2009-
.Data
2010-
.TranslateConfig
2011-
.DraftConfig
2012-
.AlternateTrainingSource
2013-
?.ProjectRef;
2014-
if (
2015-
projectDoc.Data.TranslateConfig.DraftConfig.AlternateTrainingSourceEnabled
2016-
&& !string.IsNullOrWhiteSpace(alternateTrainingSourceProjectId)
2017-
)
2018-
{
2019-
syncProjectIds.Add(alternateTrainingSourceProjectId);
2020-
}
2021-
2022-
// If we have an additional training source, sync that next
2023-
string additionalTrainingSourceProjectId = projectDoc
2024-
.Data
2025-
.TranslateConfig
2026-
.DraftConfig
2027-
.AdditionalTrainingSource
2028-
?.ProjectRef;
2029-
if (
2030-
projectDoc.Data.TranslateConfig.DraftConfig.AdditionalTrainingSourceEnabled
2031-
&& !string.IsNullOrWhiteSpace(additionalTrainingSourceProjectId)
2032-
)
2033-
{
2034-
syncProjectIds.Add(additionalTrainingSourceProjectId);
2035-
}
1994+
// Store the project ids to sync in a hashset to prevent duplicates
1995+
HashSet<string> syncProjectIds =
1996+
[
1997+
.. projectDoc.Data.TranslateConfig.DraftConfig.TrainingSources.Select(s => s.ProjectRef),
1998+
.. projectDoc.Data.TranslateConfig.DraftConfig.DraftingSources.Select(s => s.ProjectRef),
1999+
];
20362000

20372001
// Remove the source project, as it was synced when the target was synced
20382002
string sourceProjectId = projectDoc.Data.TranslateConfig.Source?.ProjectRef;

0 commit comments

Comments
 (0)