public void ЗагрузитьМеню() { System.Threading.Tasks.Task.Factory.StartNew(() => { for (int i = 0; i < 3; i++) { try { using (RosService.Client client = new RosService.Client()) { if (client.СведенияПользователя.ГруппаРаздел == 0) { throw new Exception("Интерфейс пользователя не задан в настройках"); } var xamlLoaded = client.Архив.ПолучитьЗначение <string>(client.СведенияПользователя.ГруппаРаздел, "ИнтерфейсКод", Хранилище.Оперативное); if (string.IsNullOrEmpty(xamlLoaded)) { var query = new RosService.Data.Query(); query.ДобавитьУсловиеПоиска("НазваниеОбъекта", "БыстроеМеню", Query.Оператор.авно); query.ДобавитьМестоПоиска(client.СведенияПользователя.ГруппаРаздел, 1); var БыстроеМеню = client.Архив.Поиск(query, Хранилище.Оперативное).AsEnumerable().SingleOrDefault(); xamlLoaded = client.Архив.ПолучитьЗначение <string>(БыстроеМеню.Field <decimal>("id_node"), "XamlКод", Хранилище.Оперативное); } if (string.IsNullOrEmpty(xamlLoaded)) { return; } this.Dispatcher.Invoke(DispatcherPriority.Loaded, (Action <string>) delegate(string xaml) { try { //var menu = System.Windows.Markup.XamlReader.Load(new System.Xml.XmlTextReader(new System.IO.StringReader(xaml))) as FrameworkElement; //if (menu is System.Windows.Controls.TabControl) if (xaml.StartsWith("<TabControl")) { //var tab = menu as System.Windows.Controls.TabControl; var oRow = PART_DocumentsHost.Items.Count - 1; foreach (var item in System.Xml.Linq.XDocument.Parse(xaml).Root.Elements()) { var tag = item.Attribute("Tag").Value; if ("@@Главная".Equals(tag)) { //ПользовательскоеМеню = RosControl.Helper.CloneElement<DependencyObject>(item.Content as DependencyObject); ПользовательскоеМеню = XamlReader.Parse(item.FirstNode.ToString()) as FrameworkElement; } else { var __Icon = null as object; var strIcon = TryGetValue(item, "Icon"); if (!string.IsNullOrEmpty(strIcon)) { __Icon = new FilePreview() { Mode = FilePreviewMode.Icon, id_node = strIcon } } ; PART_DocumentsHost.Items.Insert(oRow++, new DocumentsTabItem() { Header = TryGetValue(item, "Header"), Tag = tag, IsReadOnly = true, Icon = __Icon, MinWidth = 0, ToolTip = TryGetValue(item, "ToolTip"), Navigation = XamlReader.Parse(item.FirstNode.ToString()) as FrameworkElement }); } } } else { ПользовательскоеМеню = XamlReader.Parse(xaml) as FrameworkElement; } ЗагрузитьВкладки(); } catch (Exception ex) { ПользовательскоеМеню = new TextBlock() { Margin = new Thickness(10), TextWrapping = TextWrapping.Wrap, TextAlignment = TextAlignment.Center, Text = ex.Message }; } }, xamlLoaded); break; } } catch (TimeoutException) { System.Threading.Thread.Sleep(1000); continue; } catch (Exception ex) { this.Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, (Action) delegate { ПользовательскоеМеню = new TextBlock() { Margin = new Thickness(10), TextWrapping = TextWrapping.Wrap, TextAlignment = TextAlignment.Center, Text = ex.Message }; }); } } }); }
public TableValue Search(RosService.Data.Query query) { return(CurrentPool.GetClient().Channel.Поиск(query, Хранилище.Оперативное, Db)); }