Example #1
0
        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
            });
        }
Example #2
0
        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);
        }
Example #3
0
        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));
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }