public Query(String name) { Name = name; Unit = TimeUnit.None; Start = DateTime.Today; End = DateTime.Today; Segment = new AnaliticsAddIn.XML.Objects.ReportQuery.Filter.Segment(null, null); Metrics = new List<Metric>(); Dimensions = new List<Dimension>(); Filters = new List<AnaliticsAddIn.XML.Objects.ReportQuery.Filter.Filter>(); }
public Query(List<Metric> metrics, List<Dimension> dimensions, List<AnaliticsAddIn.XML.Objects.ReportQuery.Filter.Filter> filters, AnaliticsAddIn.XML.Objects.ReportQuery.Filter.Segment segment, TimeUnit unit, DateTime begining, DateTime ending, String name) { Unit = unit; Start = begining; End = ending; Metrics = metrics; Dimensions = dimensions; Filters = filters; Segment = segment; Name = name; }
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); }