Skip to content

Commit a43b995

Browse files
committed
C# backend updates
1 parent 133aadd commit a43b995

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
@@ -1949,48 +1949,12 @@ await projectDoc.SubmitJson0OpAsync(op =>
19491949
// We use project service, as it provides permission and token checks
19501950
string jobId = await projectService.SyncAsync(curUserId, buildConfig.ProjectId);
19511951

1952-
// Store the project ids in a hashset to prevent duplicates
1953-
HashSet<string> syncProjectIds = [];
1954-
1955-
// If we have an alternate source, sync that first
1956-
string alternateSourceProjectId = projectDoc.Data.TranslateConfig.DraftConfig.AlternateSource?.ProjectRef;
1957-
if (
1958-
projectDoc.Data.TranslateConfig.DraftConfig.AlternateSourceEnabled
1959-
&& !string.IsNullOrWhiteSpace(alternateSourceProjectId)
1960-
)
1961-
{
1962-
syncProjectIds.Add(alternateSourceProjectId);
1963-
}
1964-
1965-
// If we have an alternate training source, sync that next
1966-
string alternateTrainingSourceProjectId = projectDoc
1967-
.Data
1968-
.TranslateConfig
1969-
.DraftConfig
1970-
.AlternateTrainingSource
1971-
?.ProjectRef;
1972-
if (
1973-
projectDoc.Data.TranslateConfig.DraftConfig.AlternateTrainingSourceEnabled
1974-
&& !string.IsNullOrWhiteSpace(alternateTrainingSourceProjectId)
1975-
)
1976-
{
1977-
syncProjectIds.Add(alternateTrainingSourceProjectId);
1978-
}
1979-
1980-
// If we have an additional training source, sync that next
1981-
string additionalTrainingSourceProjectId = projectDoc
1982-
.Data
1983-
.TranslateConfig
1984-
.DraftConfig
1985-
.AdditionalTrainingSource
1986-
?.ProjectRef;
1987-
if (
1988-
projectDoc.Data.TranslateConfig.DraftConfig.AdditionalTrainingSourceEnabled
1989-
&& !string.IsNullOrWhiteSpace(additionalTrainingSourceProjectId)
1990-
)
1991-
{
1992-
syncProjectIds.Add(additionalTrainingSourceProjectId);
1993-
}
1952+
// Store the project ids to sync in a hashset to prevent duplicates
1953+
HashSet<string> syncProjectIds =
1954+
[
1955+
.. projectDoc.Data.TranslateConfig.DraftConfig.TrainingSources.Select(s => s.ProjectRef),
1956+
.. projectDoc.Data.TranslateConfig.DraftConfig.DraftingSources.Select(s => s.ProjectRef),
1957+
];
19941958

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

0 commit comments

Comments
 (0)