|
| 1 | +using System.Text; |
| 2 | +using Digdir.Domain.Dialogporten.Domain.Dialogs.Entities.Actions; |
| 3 | +using Digdir.Domain.Dialogporten.Domain.Dialogs.Entities.Activities; |
| 4 | +using Digdir.Domain.Dialogporten.Domain.Dialogs.Entities.Transmissions; |
| 5 | +using Digdir.Domain.Dialogporten.Domain.Dialogs.Entities.Transmissions.Contents; |
| 6 | + |
| 7 | +namespace Digdir.Tool.Dialogporten.LargeDataSetGenerator.EntityGenerators; |
| 8 | + |
| 9 | +internal static class Localization |
| 10 | +{ |
| 11 | + public const string CopyCommand = """COPY "Localization" ("LanguageCode", "LocalizationSetId", "CreatedAt", "UpdatedAt", "Value") FROM STDIN (FORMAT csv, HEADER false, NULL '')"""; |
| 12 | + |
| 13 | + public static string Generate(DialogTimestamp dto) |
| 14 | + { |
| 15 | + var csvData = new StringBuilder(); |
| 16 | + |
| 17 | + List<Guid> localizationSetIds = |
| 18 | + [ |
| 19 | + dto.DialogId, |
| 20 | + DeterministicUuidV7.Generate(dto.Timestamp, nameof(DialogTransmission), 1), |
| 21 | + DeterministicUuidV7.Generate(dto.Timestamp, nameof(DialogTransmission), 2), |
| 22 | + DeterministicUuidV7.Generate(dto.Timestamp, nameof(DialogGuiAction), 1), |
| 23 | + DeterministicUuidV7.Generate(dto.Timestamp, nameof(DialogGuiAction), 2), |
| 24 | + DeterministicUuidV7.Generate(dto.Timestamp, nameof(DialogGuiAction), 3), |
| 25 | + DeterministicUuidV7.Generate(dto.Timestamp, nameof(DialogActivity), Activity.DialogCreatedType), |
| 26 | + DeterministicUuidV7.Generate(dto.Timestamp, nameof(DialogActivity), Activity.InformationType), |
| 27 | + DeterministicUuidV7.Generate(dto.Timestamp, |
| 28 | + nameof(Domain.Dialogporten.Domain.Dialogs.Entities.Contents.DialogContent), 1), |
| 29 | + DeterministicUuidV7.Generate(dto.Timestamp, |
| 30 | + nameof(Domain.Dialogporten.Domain.Dialogs.Entities.Contents.DialogContent), 2), |
| 31 | + DeterministicUuidV7.Generate(dto.Timestamp, nameof(DialogTransmissionContent), 1), |
| 32 | + DeterministicUuidV7.Generate(dto.Timestamp, nameof(DialogTransmissionContent), 2), |
| 33 | + DeterministicUuidV7.Generate(dto.Timestamp, nameof(DialogTransmissionContent), 3), |
| 34 | + DeterministicUuidV7.Generate(dto.Timestamp, nameof(DialogTransmissionContent), 4) |
| 35 | + ]; |
| 36 | + |
| 37 | + foreach (var localizationSetId in localizationSetIds) |
| 38 | + { |
| 39 | + var rng = new Random(localizationSetId.GetHashCode()); |
| 40 | + |
| 41 | + var english = Words.English.Length != 0 |
| 42 | + ? Words.English[rng.Next(0, Words.English.Length)] + " " + |
| 43 | + Words.English[rng.Next(0, Words.English.Length)] |
| 44 | + : $"English {Guid.NewGuid().ToString()[..8]}"; |
| 45 | + |
| 46 | + var norwegian = Words.Norwegian.Length != 0 |
| 47 | + ? Words.Norwegian[rng.Next(0, Words.Norwegian.Length)] + " " + |
| 48 | + Words.Norwegian[rng.Next(0, Words.Norwegian.Length)] |
| 49 | + : $"Norsk {Guid.NewGuid().ToString()[..8]}"; |
| 50 | + |
| 51 | + csvData.AppendLine( |
| 52 | + $"nb,{localizationSetId},{dto.FormattedTimestamp},{dto.FormattedTimestamp},{norwegian}"); |
| 53 | + csvData.AppendLine( |
| 54 | + $"en,{localizationSetId},{dto.FormattedTimestamp},{dto.FormattedTimestamp},{english}"); |
| 55 | + } |
| 56 | + |
| 57 | + return csvData.ToString(); |
| 58 | + } |
| 59 | +} |
0 commit comments