Esempio n. 1
0
        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);
        }
Esempio n. 3
0
 public void Edit(TranslationListEntry entry)
 {
     NavigationManager.NavigateTo($"Edit/{entry.Id}");
 }