public bool IsModified() { if (Verse.IsNotNull() && Verse.Text.IsNullOrEmpty()) { return(true); } foreach (var item in flowLayoutPanel.Controls) { if (item is VerseWordEditorControl) { if ((item as VerseWordEditorControl).Modified) { return(true); } } } return(default);
public void LoadData(Verse verse, bool loadOtherTranslations = true) { Verse = verse; Words = new List <VerseWordInfo>(); if (verse.IsNotNull()) { foreach (var item in verse.VerseWords.OrderBy(x => x.NumberOfVerseWord)) { Words.Add(new VerseWordInfo(item)); } } gridControl.DataSource = Words; cbStartFromNewLine.Checked = Verse.StartFromNewLine; txtStoryTextLevel1.Text = String.Empty; txtStoryTextLevel2.Text = String.Empty; var subtitles = Verse.ParentChapter.Subtitles.Where(x => x.BeforeVerseNumber == Verse.NumberOfVerse); foreach (var subtitle in subtitles) { if (subtitle.Level == 1) { txtStoryTextLevel1.Text = subtitle.Text; } else if (subtitle.Level == 2) { txtStoryTextLevel2.Text = subtitle.Text; } } if (loadOtherTranslations) { var getTranslations = Task.Factory.StartNew(() => { var index = new VerseIndex(Verse.Index); var list = new List <TranslationVerseInfo>(); var view = new XPView(Verse.Session, typeof(Translation)) { CriteriaString = "(([Type] = 4) OR ([Type] = 2)) AND [Hidden] = 0" }; view.Properties.Add(new ViewProperty("Oid", SortDirection.None, "[Oid]", false, true)); view.Properties.Add(new ViewProperty("Name", SortDirection.None, "[Name]", false, true)); view.Properties.Add(new ViewProperty("Type", SortDirection.None, "[Type]", false, true)); var indexes = new List <string>(); foreach (ViewRecord item in view) { var name = item["Name"].ToString(); var _index = $"{name.Replace("'", "").Replace("+", "")}.{index.NumberOfBook}.{index.NumberOfChapter}.{index.NumberOfVerse}"; indexes.Add(_index); var tvi = new TranslationVerseInfo() { TranslationName = name.Replace("'", "").Replace("+", ""), SortIndex = ((TranslationType)item["Type"]).GetCategory().ToInt() }; list.Add(tvi); } var _view = new XPView(Verse.Session, typeof(Verse)) { Criteria = new DevExpress.Data.Filtering.InOperator("Index", indexes) }; _view.Properties.Add(new ViewProperty("Index", SortDirection.None, "[Index]", false, true)); _view.Properties.Add(new ViewProperty("Text", SortDirection.None, "[Text]", false, true)); foreach (ViewRecord item in _view) { var idx = new VerseIndex(item["Index"].ToString()); var tvi = list.Where(x => x.TranslationName == idx.TranslationName).FirstOrDefault(); if (tvi.IsNotNull()) { tvi.VerseText = item["Text"].ToString().Replace("<pb/>", "").Replace("<t>", "").Replace("<m>", "").Replace("</t>", "").Replace("</m>", "").Replace("<e>", "").Replace("</e>", ""); } ; } //foreach (ViewRecord item in view) { // var id = item["Oid"].ToInt(); // var name = item["Name"].ToString(); // var tvi = new TranslationVerseInfo() { // TranslationName = name // }; // var _index = $"{name.Replace("'", "").Replace("+", "")}.{index.NumberOfBook}.{index.NumberOfChapter}.{index.NumberOfVerse}"; // var _view = new XPView(Verse.Session, typeof(Verse)) { // CriteriaString = $"[Index] = '{_index}'" // }; // _view.Properties.Add(new ViewProperty("Text", SortDirection.None, "[Text]", false, true)); // foreach (ViewRecord _item in _view) { // tvi.VerseText = _item["Text"].ToString().Replace("<pb/>", "").Replace("<t>", "").Replace("<m>", "").Replace("</t>", "").Replace("</m>", "").Replace("<e>", "").Replace("</e>", ""); // } // if (tvi.VerseText.IsNotNullOrEmpty()) { // list.Add(tvi); // } //} return(list.Where(x => x.VerseText.IsNotNullOrEmpty()).OrderBy(x => x.SortIndex).ToList()); }); getTranslations.ContinueWith((x) => { this.SafeInvoke(f => { f.gridTranslations.DataSource = x.Result; f.viewTranslations.BestFitColumns(); f.viewTranslations.LoadingPanelVisible = false; }); }); } else { tabVerseTranslations.PageVisible = false; viewTranslations.LoadingPanelVisible = false; } }