protected override async Task OnInitializedAsync() { if (TranslationId.HasValue) { Entity = await TranslationDataService.GetDetail(TranslationId.Value); ViewModel = Entity.Map2ViewModel(); } else { var newid = await TranslationDataService.GetNextId(); Entity = new TranslationListEntry(); Entity.Id = newid; Entity.LangItems.Add(new LanguageItem { LangCode = "de_DE", LangText = "Deutsch" }); Entity.LangItems.Add(new LanguageItem { LangCode = "en_EN", LangText = "Englisch" }); ViewModel = Entity.Map2ViewModel(); } }
//public async Task<bool> UpdateTranslations(EditViewModel model) //{ // try // { // var sqlStm = "INSERT INTO profound82.puitransp (trid, TRLANG, TRPHRASE) "; // sqlStm += $"VALUES ({model.GrpId}1, 'de_DE', '{model.DeLong}'), "; // sqlStm += $"VALUES ({model.GrpId}2, 'de_DE', '{model.DeMiddle}'), "; // sqlStm += $"VALUES ({model.GrpId}3, 'de_DE', '{model.DeShort}'), "; // sqlStm += $"VALUES ({model.GrpId}1, 'en_EN', '{model.EnLong}'), "; // sqlStm += $"VALUES ({model.GrpId}2, 'en_EN', '{model.EnMiddle}'), "; // sqlStm += $"VALUES ({model.GrpId}3, 'en_EN', '{model.EnShort}'), "; // return await _sqlService.Excute(sqlStm); // } // catch (Exception ex) // { // throw new Exception($"Error creating/updating translations: {ex.Message}"); // } //} //public async Task<bool> UpdateTranslation(EditViewModel model) //{ // try // { // var sql = "MERGE INTO profound82.puitransp AS target "; // sql += "USING (VALUES "; // sql += $"({model.GrpId}1, 'de_DE', '{model.DeLong}'), "; // sql += $"({model.GrpId}2, 'de_DE', '{model.DeMiddle}'), "; // sql += $"({model.GrpId}3, 'de_DE', '{model.DeShort}'), "; // sql += $"({model.GrpId}1, 'en_EN', '{model.EnLong}'), "; // sql += $"({model.GrpId}2, 'en_EN', '{model.EnMiddle}'), "; // sql += $"({model.GrpId}3, 'en_EN', '{model.EnShort}'), "; // sql += ") AS source (c1, c2, c3) "; // sql += "ON (target.trid = source.c1) "; // sql += "WHEN MATCHED THEN "; // sql += "UPDATE SET target.TRLANG = source.c2, target.TRPHRASE = source.c3 "; // sql += "WHEN NOT MATCHED THEN "; // sql += "INSERT (trid, TRLANG, TRPHRASE) VALUES(source.c1, source.c2, source.c3) "; // return await _sqlService.Excute(sql); // } // catch (Exception ex) // { // throw new Exception($"Error loading updating translation: {ex.Message}"); // } //} private List <TranslationListEntry> _mapEntries(List <TranslationEntry> entries) { var items = new List <TranslationListEntry>(); foreach (var e in entries) { var ce = e; var id = e.Id.ToString(); ce.GroupId = Convert.ToInt32(id.Substring(0, id.Length - 1)); var grp = items.Where(x => x.Id == ce.GroupId).FirstOrDefault(); if (grp == null) { grp = new TranslationListEntry(); grp.Id = ce.GroupId; items.Add(grp); } var de = grp.LangItems.Where(x => x.LangCode == "de_DE").FirstOrDefault(); if (de == null) { de = new LanguageItem(); de.LangCode = "de_DE"; de.LangText = "Deutsch"; grp.LangItems.Add(de); } var en = grp.LangItems.Where(x => x.LangCode == "en_EN").FirstOrDefault(); if (en == null) { en = new LanguageItem(); en.LangCode = "en_EN"; en.LangText = "Englisch"; grp.LangItems.Add(en); } switch (id.Last()) { case '3': de.Short = e.DeText; en.Short = e.EnText; break; case '2': de.Middle = e.DeText; en.Middle = e.EnText; break; case '1': de.Long = e.DeText; en.Long = e.EnText; break; } } foreach (var i in items) { var de = i.LangItems.Where(x => x.LangCode == "de_DE").FirstOrDefault(); var en = i.LangItems.Where(x => x.LangCode == "en_EN").FirstOrDefault(); if (de != null) { if (!string.IsNullOrEmpty(de.Long)) { i.DescriptionDE = de.Long; } if (string.IsNullOrEmpty(i.DescriptionDE) && !string.IsNullOrEmpty(de.Middle)) { i.DescriptionDE = de.Middle; } if (string.IsNullOrEmpty(i.DescriptionDE) && !string.IsNullOrEmpty(de.Short)) { i.DescriptionDE = de.Short; } } if (en != null) { if (!string.IsNullOrEmpty(en.Long)) { i.DescriptionEN = en.Long; } if (string.IsNullOrEmpty(i.DescriptionEN) && !string.IsNullOrEmpty(en.Middle)) { i.DescriptionEN = en.Middle; } if (string.IsNullOrEmpty(i.DescriptionEN) && !string.IsNullOrEmpty(en.Short)) { i.DescriptionEN = en.Short; } } } return(items); }
public void Edit(TranslationListEntry entry) { NavigationManager.NavigateTo($"Edit/{entry.Id}"); }