Quintiq file version 2.0
#parent: #root
Method SetConfigurationQuery (
  JSON jsonQuery
) id:Method_DialogKpiQuery_SetConfigurationQuery
{
  #keys: '[146450.3.331169624]'
  Body:
  [*
    // Populate the KpiQuery with the JSON data with query type: Compare KPIs and Track KPIs
    kpiQuery := DataHolderKpiQuery.Data();
    
    datetimeConverter := StringToDateTime::StandardConverter();
    queryType := jsonQuery.Get( "QueryType" ).GetString();
    kpiQuery.QueryType( queryType );
    
    // Track KPIs
    if( queryType = KpiQuery::QUERY_TRACK() )
    {
      // Query parameter
      kpiQuery.Timespan( jsonQuery.Get( "Timespan" ).GetString() );
      kpiQuery.DateTimeFrom( datetimeConverter.Convert( jsonQuery.Get( "DateTimeFrom" ).GetString() ) );
      kpiQuery.DateTimeTo( datetimeConverter.Convert( jsonQuery.Get( "DateTimeTo" ).GetString() ) );
      kpiQuery.SnapshotLimit( jsonQuery.Get( "LimitSnapshot" ).GetNumber() );
      
      // Other
      kpiQuery.IsAllSnapshotSelected( jsonQuery.Get( "IsAllSnapsnotEnabled" ).GetBoolean() );
      
      // Label filtering
      kpiQuery.IsLabelFilteringEnabled( jsonQuery.Get( "IsLabelFilteringEnabled" ).GetBoolean() );
      kpiQuery.LabelFilters( jsonQuery.Get( "LabelFilters" ).GetString() );
      
      // Kpi selection
      kpiQuery.MetaDatas( jsonQuery.Get( "MetaDatas" ).GetString() );
      
      // Series selection
      kpiQuery.SeriesSelection( jsonQuery.Get( "Series" ).GetString() );
      kpiQuery.IsOnlyLastSnapshotEnabled( jsonQuery.Get( "IsLastSnapshotEnabled" ).GetBoolean() );
      kpiQuery.Timetype( jsonQuery.Get( "Timetype" ).GetString() );
    }
    else if( queryType = KpiQuery::QUERY_COMPARE() ) // Compare KPIs
    {
      kpiQuery.SeriesSelection( jsonQuery.Get( "Series" ).GetString() );
      kpiQuery.Timetype( jsonQuery.Get( "Timetype" ).GetString() );
      kpiQuery.LabelFilters( jsonQuery.Get( "LabelFilters" ).GetString() );
      kpiQuery.MetaDatas( jsonQuery.Get( "MetaDatas" ).GetString() );
    }
  *]
}
