예제 #1
0
 public static void addMetric(Metric metric)
 {
     XmlDocument doc = init(parametersFilePath);
     XmlNode node = doc.SelectSingleNode("/root/Metrics");
     XmlDocument tempDoc = new XmlDocument();
     tempDoc.LoadXml(metric.ToXml());
     XmlNode n = doc.ImportNode(tempDoc.FirstChild, true);
     node.AppendChild(n);
     doc.Save(parametersFilePath);
 }
 private void addMetricButton_Click(object sender, EventArgs e)
 {
     String name = metricNameTextBox.Text;
     String tag = metricTagTextBox.Text;
     if (name == null || name == "" || tag ==""|| tag == null)
     {
         MessageBox.Show("Error - The new metric must have no empty field.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
     else
     {
         Metric metric = new Metric(name, tag);
         XML.Global.Metrics.Add(metric);
         // Add the new metric to the XML file
         XmlGa.addMetric(metric);
         // Refresh the list display
         refreshMetricList();
         // Empty editBoxes
         metricNameTextBox.Clear();
         metricTagTextBox.Clear();
     }
 }
예제 #3
0
 public static void removeMetric(Metric metric)
 {
     XmlDocument doc = init(parametersFilePath);
     XmlNode node = doc.SelectSingleNode("/root/Metrics/Metric[@name='"+metric.Name+"']");
     node.ParentNode.RemoveChild(node);
     doc.Save(parametersFilePath);
 }
예제 #4
0
        private static Query loadXmlQuery(Report report, string queryName)
        {
            XmlDocument doc = init(reportsFilePath);
            // Load metrics
            XmlNodeList xmlNodeList = doc.SelectNodes("/root/Reports/Report[@name='" + report + "']/Queries/Query[@name='"+ queryName + "']/Metrics/Metric");
            List<Metric> metrics = new List<Metric>();
            foreach (XmlNode metricNode in xmlNodeList)
            {
                string metricName = metricNode.Attributes["name"].Value;
                string metricTag = metricNode.Attributes["tag"].Value;
                Metric metric = new Metric(metricName, metricTag);
                metrics.Add(metric);
            }
            // Load dimensions
            xmlNodeList = doc.SelectNodes("/root/Reports/Report[@name='" + report + "']/Queries/Query[@name='" + queryName + "']/Dimensions/Dimension");
            List<Dimension> dimensions = new List<Dimension>();
            foreach (XmlNode dimensionNode in xmlNodeList)
            {
                string dimensionName = dimensionNode.Attributes["name"].Value;
                string dimensionTag = dimensionNode.Attributes["tag"].Value;
                Dimension dimension = new Dimension(dimensionName, dimensionTag);
                dimensions.Add(dimension);
            }

            xmlNodeList = doc.SelectNodes("/root/Reports/Report[@name='" + report + "']/Queries/Query[@name='" + queryName + "']/Filters/Filter");
            // Load filters
            List<Filter> filters = new List<Filter>();
            foreach (XmlNode filterNode in xmlNodeList)
            {
                String parameterTag = filterNode.Attributes["parameter"].Value;
                String expression = filterNode.InnerText;
                Operator op = Operator.GetOperator(filterNode.Attributes["operator"].Value);
                Parameter parameter = new Dimension("", parameterTag);
                Filter filter = new Filter(parameter, op, expression);
                filters.Add(filter);
            }
            XmlNode segmentNode = doc.SelectSingleNode("/root/Reports/Report[@name='" + report + "']/Queries/Query[@name='" + queryName + "']/Segment");
            String segmentName = segmentNode.Attributes["name"].Value;
            String semgentId = segmentNode.Attributes["id"].Value;
            AnaliticsAddIn.XML.Objects.ReportQuery.Filter.Segment segment = new AnaliticsAddIn.XML.Objects.ReportQuery.Filter.Segment(segmentName,semgentId);
            DateTime end = DateTime.Today;
            DateTime start = end;
            TimeUnit unit = report.Unit;
            return new Query(metrics, dimensions, filters, segment, unit, start, end, queryName);
        }
예제 #5
0
 public static List<Metric> loadXmlMetrics()
 {
     XmlDocument doc = init(parametersFilePath);
     XmlNodeList xmlNodeList = doc.SelectNodes("/root/Metrics/Metric");
     List<Metric> list = new List<Metric>();
     foreach (XmlNode node in xmlNodeList)
     {
         string name = node.Attributes["name"].Value;
         String tag = node.Attributes["tag"].Value;
         Metric metric = new Metric(name, tag);
         list.Add(metric);
     }
     return list;
 }