private void Window_Complite(object sender, EventArgs e) { var domains = null as IEnumerable <string>; //if (IsВсеДомены.IsChecked.Value) // domains = СписокДоменов.Where(p => p != RosService.Client.Domain); //else //domains = new string[] { RosService.Client.Domain }; domains = КопироватьВыбранные.ToArray(); //var _Тип = ""; //Тип.SelectedValue as string; var _Домен = Домен.Text; if (string.IsNullOrEmpty(_Домен)) { MessageBox.Show("Не указана база данных"); return; } //var _IsКопироватьВ = IsКопироватьВ.IsChecked.Value ? Convert.ToString(КопироватьВТип.SelectedValue) : null; var _УсловиеКопирования = УсловияКопирования.НеОпределено; if (IsАтрибуты.IsChecked.Value) { _УсловиеКопирования |= УсловияКопирования.Атрибуты; } if (IsШаблон.IsChecked.Value) { _УсловиеКопирования |= УсловияКопирования.Шаблон; } if (IsИсходныйКод.IsChecked.Value) { _УсловиеКопирования |= УсловияКопирования.ИсходныйКод; } if (IsЗначенияПоУмолчанию.IsChecked.Value) { _УсловиеКопирования |= УсловияКопирования.ЗначенияПоУмолчанию; } if (IsИконка.IsChecked.Value) { _УсловиеКопирования |= УсловияКопирования.Иконка; } if (IsВсеДомены.IsChecked.Value) { _УсловиеКопирования |= УсловияКопирования.ВсеДомены; } var log = new List <string>(); this.Window.IsEnabledComplite = false; //ThreadPool.QueueUserWorkItem((WaitCallback)delegate var types = SelectedTypes.Select(p => p.Name).ToArray(); System.Threading.Tasks.Task.Factory.StartNew(() => { try { using (RosService.Client client = new RosService.Client(TimeSpan.FromMinutes(1))) { foreach (var item in domains) { try { foreach (var type in types) { var s = DateTime.Now; try { log.Insert(0, string.Format("{0} - start", item)); client.Конфигуратор.КопироватьТипДанных( type, _Домен, type, //_IsКопироватьВ, item, _УсловиеКопирования, client.Пользователь, item); log.Insert(0, string.Format("{0} - end - {1}", item, DateTime.Now - s)); } catch { log.Insert(0, string.Format("{0} - error - {1}", item, DateTime.Now - s)); } finally { this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action) delegate { ItemsSource = null; ItemsSource = log; }); } } } finally { this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action) delegate { КопироватьВыбранные.Remove(item); }); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action) delegate { foreach (var item in SelectedTypes) { RosControl.UI.Application.Clear(item.Name); } this.Window.IsEnabledComplite = true; DialogResult = true; }); } }); }
private void Delete_Executed(object sender, ExecutedRoutedEventArgs e) { КопироватьВыбранные.Remove(((ListBox)sender).SelectedValue as string); }