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(); } }
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); }
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); }
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; }