private void InitializeMainParameters()
        {
            SelectBMZ            = new ClassCompositeBMZ();
            _mainParams          = new MainParams();
            _mainParamsViewModel = _mainParams.DataContext as VMMainParams;
            _mainParamsViewModel.ICommonParameters = this;

            _mainParamsViewModel.FillDate         = DateTime.Now.ToString("dd.MM.yyyy");
            _mainParamsViewModel.PropertyChanged += MainParamsViewModel_PropertyChanged;


            colectVMElementBuild     = new ObservableCollection <myDrawCollect>();
            colectVMElementTransform = new ObservableCollection <myDrawCollect>();
            colectVMElementDop       = new ObservableCollection <myDrawCollect>();
            colectVMElementADMIN     = new ObservableCollection <myDrawCollect>();
            colectVMElementDoor      = new ObservableCollection <myDrawCollect>();

            string query1 = "select * from _elementsBuild";
            string query2 = "select * from _elementsTransform order by nameElement, power ";
            string query3 = "select * from _additionalElements";
            string query4 = "select * from _elementsAdmin";
            string query5 = "select * from _elementsDoors";

            SetValueDB(colectVMElementBuild, query1);
            SetValueDB(colectVMElementTransform, query2);
            SetValueDB(colectVMElementDop, query3);
            SetValueDB(colectVMElementADMIN, query4);
            SetValueDB(colectVMElementDoor, query5);
        }
        private XElement GetExtraParametr(VMMainParams vmMainParams)
        {
            var parametrs = new XElement("CommonExtraParameters");

            parametrs.Add(new XElement("Composite", mvm.MyBMZ.NameBMZ));
            parametrs.Add(new XElement("Debuger", vmMainParams.DocDeveloper));
            parametrs.Add(new XElement("Checked", vmMainParams.DocApprover));
            parametrs.Add(new XElement("SchemeRUVN", mvm.MyBMZ.schemeRUVN));
            parametrs.Add(new XElement("SchemeRUNN", mvm.MyBMZ.schemeRUNN));
            parametrs.Add(new XElement("ObjectInfo", vmMainParams.ObjectInfo));
            parametrs.Add(new XElement("ObjectTitle", vmMainParams.ObjectTitle));
            parametrs.Add(new XElement("ObjectRequest", vmMainParams.ObjectRequest));
            var dopTreb = new XElement("dopTreb");

            foreach (var vari in vmMainParams.AddParamsBlocks)
            {
                dopTreb.Add(new XElement("treb", (vari.FindName("Text") as TextBox).Text));
            }
            parametrs.Add(dopTreb);
            var lst   = mvm.BaseDrawElements.ToList().FindAll(x => x is VMDefaultElement);
            var trans = lst.FindAll(x => (x as VMDefaultElement).Name.IndexOf("Тр-р") > -1);

            parametrs.Add(new XElement("CountTrans", 2));
            parametrs.Add(new XElement("AntiVandalProtect", mvm.MyBMZ.dOneSQuestParametr.VandalProtect));
            parametrs.Add(new XElement("Condition", mvm.MyBMZ.dOneSQuestParametr.Condition));
            parametrs.Add(new XElement("FireSignal", mvm.MyBMZ.dOneSQuestParametr.FireSignal));
            parametrs.Add(new XElement("FireState", mvm.MyBMZ.dOneSQuestParametr.FireState));
            parametrs.Add(new XElement("ForcedVent", mvm.MyBMZ.dOneSQuestParametr.ForcedVent));
            parametrs.Add(new XElement("Foundation", mvm.MyBMZ.dOneSQuestParametr.Foundation));
            parametrs.Add(new XElement("LineDisconect", mvm.MyBMZ.dOneSQuestParametr.LineDisconect));
            parametrs.Add(new XElement("OutLight", mvm.MyBMZ.dOneSQuestParametr.OutLight));
            parametrs.Add(new XElement("OutOil", mvm.MyBMZ.dOneSQuestParametr.OutOil));
            parametrs.Add(new XElement("OutputLV", mvm.MyBMZ.dOneSQuestParametr.OutputLV));
            parametrs.Add(new XElement("Pack", mvm.MyBMZ.dOneSQuestParametr.Pack));
            parametrs.Add(new XElement("ProtectionKit", mvm.MyBMZ.dOneSQuestParametr.ProtectionKit));
            parametrs.Add(new XElement("Seis", mvm.MyBMZ.Seis));
            parametrs.Add(new XElement("ServicePlatform", mvm.MyBMZ.dOneSQuestParametr.ServicePlatform));
            parametrs.Add(new XElement("Transport", mvm.MyBMZ.dOneSQuestParametr.Transport));
            parametrs.Add(new XElement("VandalProtect", mvm.MyBMZ.dOneSQuestParametr.VandalProtect));
            parametrs.Add(new XElement("VisualGround", mvm.MyBMZ.dOneSQuestParametr.VisualGround));
            parametrs.Add(new XElement("VoltBuildLight", mvm.MyBMZ.dOneSQuestParametr.VoltBuildLight));
            parametrs.Add(new XElement("connectTHV", mvm.MyBMZ.dOneSQuestParametr.connectTHV));
            parametrs.Add(new XElement("connectTLV", mvm.MyBMZ.dOneSQuestParametr.connectTLV));
            parametrs.Add(new XElement("inputHV", mvm.MyBMZ.dOneSQuestParametr.inputHV));
            parametrs.Add(new XElement("PowerTransform", trans.Count > 0 ? ((trans[0] as VMDefaultElement).PowerTrans).ToString() : ""));
            return(parametrs);
        }
        public void CreateXml(string filePath, object dataContinent, object dataNeed, VMMainParams vmMainParams, Dictionary <string, int> dictColorElem = null)
        {
            var xdoc = new XDocument();
            var olx  = new XElement("OLX",
                                    new XAttribute("Type", 15),
                                    new XAttribute("Version", Constants.OlxVersion));
            var colors = new XElement("Colors");

            if (dictColorElem != null)
            {
                foreach (var vari in dictColorElem)
                {
                    colors.Add(new XElement("Color", new XElement("Key", vari.Key), new XElement("Value", vari.Value)));
                }
            }
            var tmpXElementList = new List <XElement>()
            {
                GetBlocks(),
                GetExtraParametr(vmMainParams),
                new XElement("AdditionalOptions"),
                new XElement("AdditionalRequirements"),
                new XElement("AttachedData"),
                new XElement("DataContinent", dataContinent),
                new XElement("DataOwnNeed", dataNeed),
                colors
            };

            foreach (var xelement in tmpXElementList)
            {
                olx.Add(xelement);
            }
            ;

            xdoc.Add(olx);
            xdoc.Save(filePath);
        }