private IList <IEntryTerm> CreateEntryTerms(IEnumerable <ISearchResult> termsResult, ILanguage language, int id)
        {
            IList <IEntryTerm> entryTerms = new List <IEntryTerm>();
            var terms = termsResult.Where(t => t.Id == id && t.Language.Locale.TwoLetterISOLanguageName == language.Locale.TwoLetterISOLanguageName).ToList();

            foreach (var searchResult in terms)
            {
                var term = (SearchResultModel)searchResult;

                var entryTerm = new EntryTerm
                {
                    Value  = term.Text,
                    Fields = SetEntryFields(term, 2)
                };

                entryTerms.Add(entryTerm);
            }

            return(entryTerms);
        }
Exemple #2
0
        // Create Entry terms for the entry languages
        private IList <IEntryTerm> CreateEntryTerms(ILanguage language, ILanguage sourceLanguage, int id)
        {
            IList <IEntryTerm> entryTerms = new List <IEntryTerm>();
            var terms = _termsResult.Where(t => t.Id == id).ToList();

            // if language is Source language, create entryTerm with value from source language text
            // otherwise create entry terms for the target language search results
            if (language.Name.Equals(sourceLanguage.Name))
            {
                var sourceLangTerm = terms.FirstOrDefault(t => t.Language.Name.Equals(sourceLanguage.Locale.Parent.DisplayName));
                if (sourceLangTerm != null)
                {
                    var entryTerm = new EntryTerm
                    {
                        Value  = sourceLangTerm.Text,
                        Fields = SetEntryFields((SearchResultModel)sourceLangTerm)
                    };
                    entryTerms.Add(entryTerm);
                }
            }
            else
            {
                // add IEntryTerm only for the current ISearchResult term(otherwise it will duplicate all the term for each ISearchResult term)
                foreach (SearchResultModel term in terms)
                {
                    // add terms for the target
                    if (!term.Language.Name.Equals(sourceLanguage.Locale.Parent.DisplayName))
                    {
                        var entryTerm = new EntryTerm
                        {
                            Value  = term.Text,
                            Fields = SetEntryFields(term)
                        };
                        entryTerms.Add(entryTerm);
                    }
                }
            }
            return(entryTerms);
        }
        public void AddAndEdit(IEntry entry, ExcelDataGrid excelDataGrid)
        {
            try
            {
                if (_providerSettings.IsReadOnly)
                {
                    MessageBox.Show("Terminology Provider is configured as read only!", "Read Only", MessageBoxButtons.OK);
                    return;
                }
                if (!_providerSettings.IsFileReady())
                {
                    MessageBox.Show(
                        @"The excel file configured as a terminology provider appears to be also opened in the Excel application. Please close the file!",
                        @"Excel file is used by another process",
                        MessageBoxButtons.OK);
                    return;
                }
                var terms = sourceListView.Objects.Cast <ExcelEntry>().ToList();

                var selectedTerm = terms.FirstOrDefault(item => item.Id == entry.Id);


                var excelTerm = new ExcelTerm
                {
                    SourceCulture = _providerSettings.SourceLanguage,
                    TargetCulture = _providerSettings.TargetLanguage,
                    Target        = excelDataGrid.Term
                };
                var source = (ExcelEntry)entry;
                source.IsDirty   = true;
                excelTerm.Source = source.SearchText;

                var exist          = false;
                var targetlanguage = selectedTerm?.Languages.Cast <ExcelEntryLanguage>()
                                     .FirstOrDefault(x => !x.IsSource);

                if (targetlanguage != null)
                {
                    foreach (var term in targetlanguage.Terms)
                    {
                        if (term.Value == excelDataGrid.Term)
                        {
                            exist = true;
                        }
                    }

                    if (exist == false)
                    {
                        var termToAdd = new EntryTerm
                        {
                            Value = excelDataGrid.Term
                        };
                        targetlanguage.Terms.Add(termToAdd);

                        terms[entry.Id].Languages = selectedTerm.Languages;
                    }
                }

                JumpToTerm(entry);
                Task.Run(Save);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void AddAndEdit(IEntry entry, ExcelDataGrid excelDataGrid)
        {
            try
            {
                var selectedTerm = _terms.FirstOrDefault(item => item.Id == entry.Id);
                var termToAdd = new EntryTerm
                {
                    Value = excelDataGrid.Term
                };

                var excelTerm = new ExcelTerm
                {
                    SourceCulture = entry.Languages[0].Locale,
                    TargetCulture = entry.Languages[1].Locale,
                    Target = excelDataGrid.Term
                };
                var source = (ExcelEntry) entry;
                excelTerm.Source = source.SearchText;

                var exist = false;
                if (selectedTerm != null)
                {
                    foreach (var term in selectedTerm.Languages[1].Terms)
                    {
                        if (term.Value == excelDataGrid.Term)
                        {
                            exist = true;
                        }


                    }

                    if (exist == false)
                    {
                        selectedTerm.Languages[1].Terms.Add(termToAdd);

                        _terms[entry.Id].Languages = selectedTerm.Languages;
                    }

                }

                JumpToTerm(entry);
                Task.Run(Save);
            }
            catch (Exception ex)
            {
                TelemetryService.Instance.AddException(ex);
                throw;
            }
        }