private void OnBuildDependentNodes()
        {
            Entity entity = (Entity)this.SelectedNode.MetadataInfo;
            DocumentsTreeService service = new DocumentsTreeService();

            service.BuildDocumentsTree(entity, new Progress <MetadataTreeNode>(OnDependentNodesBuilt));
        }
 public void BuildDataNodesTree(Entity entity)
 {
     if (this.Department == null)
     {
         Z.Notify(new Notification {
             Title = "Hermes", Content = "Не выбран филиал!"
         });
         return;
     }
     try
     {
         this.Nodes.Clear();
         DocumentsTreeService service = new DocumentsTreeService();
         service.Parameters.Add("StartPeriod", this.StartOfPeriod);
         service.Parameters.Add("EndPeriod", this.EndOfPeriod);
         service.Parameters.Add("Department", this.Department.Identity);
         service.BuildDocumentsTree(entity, new Progress <MetadataTreeNode>(OnDataNodesTreeBuilt));
     }
     catch (Exception ex)
     {
         Z.Notify(new Notification {
             Title = "Hermes", Content = Z.GetErrorText(ex) + Environment.NewLine + ex.StackTrace
         });
         return;
     }
 }
        private void RegisterEntitiesForExchange()
        {
            if (this.SourceInfoBase == null)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Не выбрана информационная база данных!"
                });
                return;
            }
            if (this.Department == null)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Не выбран филиал!"
                });
                return;
            }
            if (this.Nodes.Count == 0)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Не выбран узел данных!"
                });
                return;
            }
            DocumentsTreeService    service = new DocumentsTreeService();
            List <MetadataTreeNode> result  = service.RegisterEntitiesForExchange(this.Nodes[0]);

            foreach (MetadataTreeNode node in result)
            {
                this.Nodes.Add(node);
            }
            //Z.Notify(new Notification { Title = "Hermes", Content = "Регистрация ссылок для обмена выполнена." });
        }
        private void OnRegisterCurrentNodeReferences()
        {
            DocumentsTreeService service = new DocumentsTreeService();

            try
            {
                service.RegisterCurrentNodeReferencesForExchange(this.SelectedNode, new Progress <MetadataTreeNode>(ReportProgress));
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Ссылки зарегистрированы."
                });
            }
            catch (Exception ex)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = Z.GetErrorText(ex) + Environment.NewLine + ex.StackTrace
                });
            }
        }
        private void OnRegisterNodesReferencesForExchange()
        {
            if (this.SourceInfoBase == null)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Не выбран источник данных!"
                });
                return;
            }
            if (this.Department == null)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Не выбран филиал!"
                });
                return;
            }
            if (this.Nodes.Count == 0)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Не выбран узел метаданных!"
                });
                return;
            }
            DocumentsTreeService service = new DocumentsTreeService();
            MetadataTreeNode     root    = this.Nodes[0];

            this.Nodes.Clear();
            try
            {
                service.Parameters.Add("SourceInfoBase", this.SourceInfoBase);
                service.Parameters.Add("TargetInfoBase", this.TargetInfoBase);
                service.Parameters.Add("StartPeriod", this.StartOfPeriod);
                service.Parameters.Add("EndPeriod", this.EndOfPeriod);
                service.Parameters.Add("Department", this.Department.Identity);
                service.RegisterNodesReferencesForExchange(root, new Progress <MetadataTreeNode>(OnNodesReferencesRegistered));
            }
            catch (Exception ex)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = Z.GetErrorText(ex) + Environment.NewLine + ex.StackTrace
                });
            }
        }
        private void OnCreateCorrespondenceTables()
        {
            DocumentsTreeService service = new DocumentsTreeService();

            service.Parameters.Add("SourceInfoBase", this.SourceInfoBase);
            service.Parameters.Add("TargetInfoBase", this.TargetInfoBase);
            try
            {
                service.CreateCorrespondenceTablesAndFunctions();
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Таблицы соответствий созданы"
                });
            }
            catch (Exception ex)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = Z.GetErrorText(ex) + Environment.NewLine + ex.StackTrace
                });
            }
        }
        private void OnSendNodeRegistersToTarget()
        {
            DocumentsTreeService service = new DocumentsTreeService();

            service.Parameters.Add("SourceInfoBase", this.SourceInfoBase);
            service.Parameters.Add("TargetInfoBase", this.TargetInfoBase);
            try
            {
                service.SendNodeRegistersToTarget(this.SelectedNode, new Progress <MetadataTreeNode>(ReportProgress));
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Перенос данных узла выполнен"
                });
            }
            catch (Exception ex)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = Z.GetErrorText(ex) + Environment.NewLine + ex.StackTrace
                });
            }
        }
        public void ExchangeData()
        {
            if (this.SourceInfoBase == null)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Не выбран источник данных!"
                });
                return;
            }
            if (this.TargetInfoBase == null)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Не выбран приёмник данных!"
                });
                return;
            }
            if (this.SourceInfoBase == this.TargetInfoBase)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Источник и приёмник не могут быть равны!"
                });
                return;
            }
            DocumentsTreeService service = new DocumentsTreeService();

            service.Parameters.Add("SourceInfoBase", this.SourceInfoBase);
            service.Parameters.Add("TargetInfoBase", this.TargetInfoBase);
            try
            {
                service.SendDataToTargetInfoBase();
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Обмен данными выполнен."
                });
            }
            catch (Exception ex)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = Z.GetErrorText(ex) + Environment.NewLine + ex.StackTrace
                });
            }
        }
        private void OnRegisterCurrentNodeForeignReferences()
        {
            DocumentsTreeService service = new DocumentsTreeService();

            service.Parameters.Add("StartPeriod", this.StartOfPeriod);
            service.Parameters.Add("EndPeriod", this.EndOfPeriod);
            service.Parameters.Add("Department", this.Department.Identity);
            try
            {
                service.RegisterCurrentNodeForeignReferencesForExchange(this.SelectedNode, new Progress <MetadataTreeNode>(ReportProgress));
                Z.Notify(new Notification {
                    Title = "Hermes", Content = "Внешние ссылки зарегистрированы."
                });
            }
            catch (Exception ex)
            {
                Z.Notify(new Notification {
                    Title = "Hermes", Content = Z.GetErrorText(ex) + Environment.NewLine + ex.StackTrace
                });
            }
        }