public object GetTree(bool forZone = false, DataGrouping grouping = DataGrouping.Namespace) { var instrumentation = App.Instrumentation; if (forZone && App.SystemApplicationType == SystemApplicationType.ZoneGovernor) { instrumentation = App.Singletons.Get <ZoneGovernorService>().SubordinateInstrumentation; } var data = (grouping == DataGrouping.Namespace) ? getByNamespace(instrumentation) : getByInterface(instrumentation); var procInterval = instrumentation.ProcessingIntervalMS; if (procInterval < MIN_PROCESSING_INTERVAL_MS) { procInterval = MIN_PROCESSING_INTERVAL_MS; } return(new { OK = true, grouping = grouping, enabled = instrumentation.Enabled, recordCount = instrumentation.RecordCount, maxRecordCount = instrumentation.MaxRecordCount, tree = data, processingIntervalMS = procInterval }); }
public override sealed bool Read(GH_IReader reader) { if (!base.Read(reader)) { return(false); } int grouping = (int)DataGrouping.None; reader.TryGetInt32("Grouping", ref grouping); Grouping = (DataGrouping)grouping; return(true); }
public List <ObjData> GetData( int account, DataGrouping grouping, int top, MeasureRef[] measures, DayCodeRange[] ranges, MeasureDiff[] diff, MeasureSort[] dataSort, MeasureSort[] viewSort, MeasureFormat[] format, MeasureFilter filter ) { // Get measures List <Measure> measuresList = GetMeasures(account, true); Dictionary <int, Measure> measuresByID = measuresList.ToDictionary(m => m.MeasureID); EdgeBI.Web.DataServices.DataHandler dataHandler = new EdgeBI.Web.DataServices.DataHandler(); return(dataHandler.GetData(account, grouping, top, measures, ranges, diff, dataSort, viewSort, format, measuresByID, filter)); }
private void Menu_Group(object sender, EventArgs e) { RecordUndoEvent("Set: Grouping"); if (Grouping == DataGrouping.Document) { Grouping = DataGrouping.None; } else { Grouping = DataGrouping.Document; } OnObjectChanged(GH_ObjectEventType.Options); if (Kind == GH_ParamKind.output) { ExpireOwner(); } ExpireSolution(true); }
private void Menu_GroupBy(DataGrouping value) { RecordUndoEvent("Set: Grouping"); if ((Grouping & value) != 0) { Grouping &= ~value; } else { Grouping |= value; } OnObjectChanged(GH_ObjectEventType.Options); if (Kind == GH_ParamKind.output) { ExpireOwner(); } ExpireSolution(true); }
private void GetSqlOptions(out string Selectfields, out string Join, out string GroupBy, out string AdditionalWhere, out string AdditionalWhere2, DataGrouping DataGrouping, string IdsList) { switch (DataGrouping) { case DataGrouping.Account: Selectfields = " a.Account_ID AS ID, b.Account AS NAME,"; Join = "Dwh_Dim_Accounts b with (nolock) ON a.Account_ID = b.Account_ID"; GroupBy = "a.Account_ID,b.Account"; AdditionalWhere = IdsList != null ? " AND a.Account_ID in (" + IdsList + ") ": ""; AdditionalWhere2 = ""; break; case DataGrouping.Channel: Selectfields = " a.Channel_ID AS ID, b.Channel_Name AS NAME,"; Join = "Dwh_Dim_Channels b with (nolock) ON a.Channel_ID = b.Channel_ID"; GroupBy = "a.Channel_ID,b.Channel_Name"; AdditionalWhere = IdsList != null ? " AND a.Channel_ID in (" + IdsList + ") ": ""; AdditionalWhere2 = " AND a.Channel_ID > 0 "; break; case DataGrouping.Campaign: Selectfields = " a.Campaign_GK AS ID, b.Campaign AS NAME,"; Join = "dwh_Dim_Campaigns b with (nolock) ON a.Campaign_Gk = b.Campaign_Gk"; GroupBy = "a.Campaign_GK,b.Campaign"; AdditionalWhere = IdsList != null ? " AND a.Campaign_GK in (" + IdsList + ") ": ""; AdditionalWhere2 = " AND a.Campaign_GK > 0 "; break; default: Selectfields = ""; Join = ""; GroupBy = ""; AdditionalWhere = ""; AdditionalWhere2 = ""; break; } }
private string GetSQL(string Sql, string HavingString, int AccountID, DayCodeRange DaysCode, DataGrouping DataGrouping, MeasureSort[] DataSort, int Top, string IdsList, Mode mode) { string OrderBy = null, TableName = null, AggregateFunctions = null, ltop = null, Selectfields = null, Join = null, GroupBy = null, AdditionalWhere = null, BetweenDatesSql = null, AdditionalWhere2 = null; TableName = "Dwh_Fact_PPC_Campaigns_ProcessedMeasures"; if (mode == Mode.Simple && IdsList == null) { OrderBy = GetOrderBy(DataSort); } BetweenDatesSql = " AND a.Day_ID BETWEEN " + DaysCode.From + " AND " + DaysCode.To; if (mode == Mode.Simple) { ltop = Top <= 0 ? "" : "TOP " + Top.ToString() + " "; } AggregateFunctions = Sql; GetSqlOptions(out Selectfields, out Join, out GroupBy, out AdditionalWhere, out AdditionalWhere2, DataGrouping, IdsList); Sql = "SELECT " + ltop + Selectfields + AggregateFunctions + " FROM " + TableName + " a inner JOIN " + Join + " WHERE a.Account_ID = " + AccountID + AdditionalWhere + AdditionalWhere2 + BetweenDatesSql + " GROUP BY " + GroupBy + " HAVING " + HavingString + OrderBy; return(Sql); }
public List <ObjData> GetData( int accountID, DataGrouping grouping, int top, MeasureRef[] measures, DayCodeRange[] ranges, MeasureDiff[] diff, MeasureSort[] dataSort, MeasureSort[] viewSort, MeasureFormat[] format, Dictionary <int, Measure> measuresList, MeasureFilter filter ) { Mode mode = GetMode(dataSort); Measures = new List <Measure>(measuresList.Values); List <ObjData> Data = new List <ObjData>(); Dictionary <string, ObjData> arrAllReturnData = new Dictionary <string, ObjData>(); int measureIndex = 1, RangeIndex = 1; string Sql = null, IdsList = null; foreach (DayCodeRange dc in ranges) { string AggregateFunction = null, HavingString = null; measureIndex = 1; foreach (MeasureRef mf in measures) { string lAggregateFunction = null, lHavingString = null; Measure m = measuresList[mf.MeasureID]; if (mf.IsTargetRef) { m = measuresList[m.TargetMeasureID]; } GetFieldsSQL(mf, measureIndex, RangeIndex, out lAggregateFunction, out lHavingString, measuresList, filter); AggregateFunction += "," + lAggregateFunction; HavingString += HavingString != null ? " AND " + lHavingString : lHavingString; DicMeasuresFormat.Add("M" + measureIndex + ".R" + RangeIndex + ".Value", m.StringFormat); measureIndex++; } Sql = GetSQL(AggregateFunction.Substring(1), HavingString, accountID, dc, grouping, dataSort, top, IdsList, mode); GetData(Sql, arrAllReturnData, out arrAllReturnData); RangeIndex++; if (IdsList == null) { foreach (string id in arrAllReturnData.Keys) { IdsList += "," + id; } if (IdsList != null) { IdsList = IdsList.Substring(1); } } } Data = new List <ObjData>(arrAllReturnData.Values); if (diff != null && diff.Length > 0) { GetDiffCalculation(out Data, Data, diff); } if (viewSort != null && viewSort.Length > 0 && mode == Mode.Simple) { GetSortData(out Data, Data, viewSort); } if (mode == Mode.Advanced) { GetDataByDataSort(out Data, Data, top, dataSort); } if (Data.Count > 0) { GetFormateData(out Data, Data); } return(Data); }