Example #1
0
        /// <summary>
        /// Note. After this, the DataGroup will contain the groups of DataDetail
        /// </summary>
        /// <param name="fixedData"></param>
        /// <param name="nextGroupBy"></param>
        /// <param name="noOfReccursions"></param>
        /// <param name="thisGroupDataType">Eg. Year, Year-Month etc the constants listed to identify where you are coming from</param>
        /// <returns></returns>
        private List <DashBoardSingle> sql(DashBoardSingle dbs, string currGroupBy, string nextGroupBy)
        {
            if (dbs.IsNull())
            {
                return(null);
            }

            var listOfDataGrouped = dbs
                                    .DataDetail
                                    .OrderBy(x => x.Key)
                                    .GroupBy(x => x.Key)
                                    .Select(y =>
                                            new DashBoardSingle
            {
                Amount = GetDataFor(y.First().Key,
                                    dbs.DataDetail)
                         .Count(),

                //we need to give a new key each time
                Key = makeKey(nextGroupBy,
                              y.First().DateOfTrx,
                              y.First().GroupBy,
                              y.First().Name),

                Name = y.First().Name,

                NameCalculated = makeName(y.First().DateOfTrx,
                                          currGroupBy,
                                          y.First().ShowDataFor,
                                          y.First().Name),
                NameForSorting = makeNameForSorting(y.First().DateOfTrx,
                                                    currGroupBy,
                                                    y.First().ShowDataFor,
                                                    y.First().Name),

                TotalAmount = dbs.DataDetail.Count(),

                //Percent = y.Count() == 0 ? 0 : (y.Count() / count) & 100,

                DataDetail = GetChildData(
                    y.First().Key,
                    dbs.DataDetail,
                    nextGroupBy,
                    dbs.BeginDate,
                    dbs.EndDate,
                    y.First().BelongsToGroup),                     //this is all the detail for this particular year.

                BeginDate      = dbs.BeginDate,
                EndDate        = dbs.EndDate,
                GroupBy        = currGroupBy,
                ShowDataFor    = y.First().ShowDataFor,
                BelongsToGroup = y.First().BelongsToGroup,
            })
                                    .ToList();


            return(listOfDataGrouped);
        }
Example #2
0
        /// <summary>
        /// This fixes the key of the main DataDetail
        /// </summary>
        /// <param name="dbs"></param>
        /// <param name="dataType"></param>
        /// <returns></returns>
        public DashBoardSingle Controller_FixKey(DashBoardSingle dbs, string dataType)
        {
            if (dbs.IsNull())
            {
                return(dbs);
            }

            if (dbs.DataDetail.IsNull())
            {
                return(dbs);
            }

            switch (dataType)
            {
            case GroupByConstants.MAIN:
                dbs = FixDataForMain(dbs);
                break;

            case GroupByConstants.YEAR:
                dbs = FixDataForYear(dbs);
                break;

            case GroupByConstants.YEAR_MONTH:
                dbs = FixDataForYearMonth(dbs);
                break;

            case GroupByConstants.YEAR_MONTH_DAY:
                dbs = FixDataForYearMonthDay(dbs);
                break;

            case GroupByConstants.YEAR_MONTH_DAY_HOUR:
                dbs = FixDataForYearMonthDayHour(dbs);
                break;

            case GroupByConstants.YEAR_MONTH_DAY_HOUR_MINUTE:
                dbs = FixDataForYearMonthDayHourMinute(dbs);
                break;

            case GroupByConstants.YEAR_MONTH_DAY_HOUR_MINUTE_SECOND:
                dbs = FixDataForYearMonthDayHourMinuteSecond(dbs);
                break;


            default:
                break;
            }

            return(dbs);
        }