Exemplo n.º 1
0
        private void tvDatabaseView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            TreeViewItem selectedNode = tvDatabaseView.SelectedItem as TreeViewItem;

            if (connected && selectedNode != null && selectedNode.Parent as TreeViewItem != null)
            {
                try {
                    String   _customerName = (selectedNode.Parent as TreeViewItem).Header.ToString();
                    String   _carName;
                    DateTime _version;
                    SplitNameVersion(selectedNode, out _carName, out _version);
                    customer = db.GetCustomer(_customerName);
                    car      = db.GetCar(customer.customerId, _carName, _version);
                    var p = db.GetParamList(car.carId);
                    param = p;
                    dgvDatabaseParam.ItemsSource = param;
                    signal = db.GetSignalList(car.carId);
                    dgcDatabaseSignal.ItemsSource = signal;
                    databaseCarSelected           = true;
                } catch (Exception ex) {
                    NoConnection("tvDatabaseView_MouseDoubleClick(object sender, MouseEventArgs e)", ex);
                }
            }
        }
Exemplo n.º 2
0
        public static void SaveToXml(CustomerDC customer, CarDC car, List <ParamDC> param, List <SignalDC> signal)
        {
            XmlNode node         = GetRootNode();
            XmlNode customerNode = null;

            foreach (XmlNode customerChechNode in node)
            {
                if (customerChechNode.Name == customer.name)
                {
                    customerNode = customerChechNode;
                    break;
                }
            }

            if (customerNode == null)
            {
                customerNode = node.AppendChild(XD.CreateElement(customer.name));
            }

            // Checking if car version already exists
            foreach (XmlNode carNode in customerNode)
            {
                if (carNode.Name == car.name)
                {
                    if (carNode.Attributes["version"] != null && ToDateTime(carNode.Attributes["version"].Value) == car.version)
                    {
                        if (MessageBox.Show("Car already exists.\nOverride existing car?", "Conflict", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                        {
                            customerNode.RemoveChild(carNode);
                        }
                        else
                        {
                            return;
                        }
                    }
                }
            }

            XmlNode      newCar     = customerNode.AppendChild(XD.CreateElement(car.name));
            XmlAttribute newVersion = newCar.Attributes.Append(XD.CreateAttribute("version"));

            newVersion.InnerText = car.version.ToString(VERSION_FORMAT);

            XmlNode newParameters = newCar.AppendChild(XD.CreateElement("Parameters"));
            String  _subPath      = param[0].subPath;
            XmlNode subPathNode   = newParameters.AppendChild(XD.CreateElement(_subPath));

            foreach (var p in param)
            {
                if (p.subPath != _subPath)
                {
                    _subPath    = p.subPath;
                    subPathNode = newParameters.AppendChild(XD.CreateElement(_subPath));
                }
                XmlNode paramAtt = subPathNode.AppendChild(XD.CreateElement(p.path));
                paramAtt.InnerText = p.value.ToString();
            }

            XmlNode newSignals = newCar.AppendChild(XD.CreateElement("Signals"));

            foreach (var p in signal)
            {
                XmlNode newSignal = newSignals.AppendChild(XD.CreateElement(p.type));
                XmlNode typeAtt   = newSignal.AppendChild(XD.CreateElement("type"));
                typeAtt.InnerText = p.type;
                XmlNode idAtt = newSignal.AppendChild(XD.CreateElement("id"));
                idAtt.InnerText = p.id.ToString();
                XmlNode startbitAtt = newSignal.AppendChild(XD.CreateElement("startbit"));
                startbitAtt.InnerText = p.startbit.ToString();
                XmlNode sizeAtt = newSignal.AppendChild(XD.CreateElement("size"));
                sizeAtt.InnerText = p.size.ToString();
                XmlNode formatAtt = newSignal.AppendChild(XD.CreateElement("format"));
                formatAtt.InnerText = p.format == "I" ? "intel" : "motorola";
                XmlNode signedAtt = newSignal.AppendChild(XD.CreateElement("signed"));
                signedAtt.InnerText = p.signed == "S" ? "1" : "0";
                XmlNode factorAtt = newSignal.AppendChild(XD.CreateElement("factor"));
                factorAtt.InnerText = p.factor.ToString();
                XmlNode offsetAtt = newSignal.AppendChild(XD.CreateElement("offset"));
                offsetAtt.InnerText = p.offset.ToString();
                XmlNode minAtt = newSignal.AppendChild(XD.CreateElement("min"));
                minAtt.InnerText = p.min.ToString();
                XmlNode maxAtt = newSignal.AppendChild(XD.CreateElement("max"));
                maxAtt.InnerText = p.max.ToString();
                XmlNode matchAtt = newSignal.AppendChild(XD.CreateElement("match"));
                matchAtt.InnerText = p.match.ToString();
            }

            XD.Save(FILE_PATH);
        }