Exemple #1
0
        public async Task <List <string> > CalculateCube(string systemName, SessionDetails sessionDetails, Query baseQuery, List <Dimension> dimensions, List <Measure> measures, TimeSpan timeout)
        {
            if (baseQuery?.Selection?.TableName == null)
            {
                throw new ArgumentException("The specified baseQuery must have at least a selection with a table name in order for it to be a valid query", nameof(baseQuery));
            }

            ICubesApi cubesApi = connectorFactory.CreateCubesApi(sessionDetails);

            Cube cube = new Cube(
                BaseQuery: baseQuery,
                ResolveTableName: baseQuery.Selection.TableName,
                Storage: Cube.StorageEnum.Full,
                Dimensions: dimensions,
                Measures: measures);

            CubeResult cubeResult = await cubesApi.CubesCalculateCubeSynchronouslyAsync(dataViewName, systemName, cube, (int)timeout.TotalSeconds, true);

            List <string> data = new List <string>();

            if (cubeResult?.MeasureResults != null)
            {
                for (int measureIndex = 0; measureIndex < cubeResult.MeasureResults.Count; measureIndex++)
                {
                    MeasureResult measureResult = cubeResult.MeasureResults[measureIndex];
                    Measure       measure       = measures[measureIndex];

                    AddMeaureToData(data, measure, measureResult, cubeResult.DimensionResults);
                    data.Add("");
                }
            }

            return(data);
        }
 public void Execute(IZetboxContext ctx)
 {
     Result = Cube.Execute(GetQuery(ctx), QrySalesQuotesItemMonth);
 }
Exemple #3
0
 public void Execute(IZetboxContext ctx)
 {
     Result = Cube.Execute(GetQuery(ctx), QryInvoicesDate, QryInvoicesFulfillmentDate);
 }