private void КопироватьВ_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.Key == Key.Enter && !string.IsNullOrEmpty(КопироватьВ.Text))
     {
         КопироватьВыбранные.Add(КопироватьВ.Text);
         КопироватьВ.Text = "";
         e.Handled        = true;
     }
 }
        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);
 }