/* Options: Date: 2025-08-05 02:15:40 Version: 8.0 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://www.asg.com.au/RestApi //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetDashboardDataMessage.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class MetricItemDTO implements IConvertible { String? Name; String? DisplayName; double? Value; String? Unit; String? DenominatorMetricName; String? NominatorMetricName; bool? ShowInSelector; MetricItemDTO({this.Name,this.DisplayName,this.Value,this.Unit,this.DenominatorMetricName,this.NominatorMetricName,this.ShowInSelector}); MetricItemDTO.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Name = json['Name']; DisplayName = json['DisplayName']; Value = JsonConverters.toDouble(json['Value']); Unit = json['Unit']; DenominatorMetricName = json['DenominatorMetricName']; NominatorMetricName = json['NominatorMetricName']; ShowInSelector = json['ShowInSelector']; return this; } Map toJson() => { 'Name': Name, 'DisplayName': DisplayName, 'Value': Value, 'Unit': Unit, 'DenominatorMetricName': DenominatorMetricName, 'NominatorMetricName': NominatorMetricName, 'ShowInSelector': ShowInSelector }; getTypeName() => "MetricItemDTO"; TypeContext? context = _ctx; } // @DataContract class DimensionItem implements IConvertible { // @DataMember String? Value; // @DataMember String? Name; DimensionItem({this.Value,this.Name}); DimensionItem.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Value = json['Value']; Name = json['Name']; return this; } Map toJson() => { 'Value': Value, 'Name': Name }; getTypeName() => "DimensionItem"; TypeContext? context = _ctx; } class SingleSerie implements IConvertible { MetricItemDTO? MainMetric; String? CategoryFormat; bool? Batch; bool? IsCategory; String? SeriesName; List? SeriesDimensions; String? RelatedDimension; SingleSerie({this.MainMetric,this.CategoryFormat,this.Batch,this.IsCategory,this.SeriesName,this.SeriesDimensions,this.RelatedDimension}); SingleSerie.fromJson(Map json) { fromMap(json); } fromMap(Map json) { MainMetric = JsonConverters.fromJson(json['MainMetric'],'MetricItemDTO',context!); CategoryFormat = json['CategoryFormat']; Batch = json['Batch']; IsCategory = json['IsCategory']; SeriesName = json['SeriesName']; SeriesDimensions = JsonConverters.fromJson(json['SeriesDimensions'],'List',context!); RelatedDimension = json['RelatedDimension']; return this; } Map toJson() => { 'MainMetric': JsonConverters.toJson(MainMetric,'MetricItemDTO',context!), 'CategoryFormat': CategoryFormat, 'Batch': Batch, 'IsCategory': IsCategory, 'SeriesName': SeriesName, 'SeriesDimensions': JsonConverters.toJson(SeriesDimensions,'List',context!), 'RelatedDimension': RelatedDimension }; getTypeName() => "SingleSerie"; TypeContext? context = _ctx; } class DashBoardControl implements IConvertible { String? ControlType; Map? attributes; String? PlaceholderId; String? DisplayName; List? Series; String? DimensionName; List? RelatedDimension; String? SortbyField; bool? SortAsc; DashBoardControl({this.ControlType,this.attributes,this.PlaceholderId,this.DisplayName,this.Series,this.DimensionName,this.RelatedDimension,this.SortbyField,this.SortAsc}); DashBoardControl.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ControlType = json['ControlType']; attributes = JsonConverters.toStringMap(json['attributes']); PlaceholderId = json['PlaceholderId']; DisplayName = json['DisplayName']; Series = JsonConverters.fromJson(json['Series'],'List',context!); DimensionName = json['DimensionName']; RelatedDimension = JsonConverters.fromJson(json['RelatedDimension'],'List',context!); SortbyField = json['SortbyField']; SortAsc = json['SortAsc']; return this; } Map toJson() => { 'ControlType': ControlType, 'attributes': attributes, 'PlaceholderId': PlaceholderId, 'DisplayName': DisplayName, 'Series': JsonConverters.toJson(Series,'List',context!), 'DimensionName': DimensionName, 'RelatedDimension': JsonConverters.toJson(RelatedDimension,'List',context!), 'SortbyField': SortbyField, 'SortAsc': SortAsc }; getTypeName() => "DashBoardControl"; TypeContext? context = _ctx; } class KendoItem implements IConvertible { String? category; Map? values; String? group; String? tooltip; Map? Dimensions; KendoItem({this.category,this.values,this.group,this.tooltip,this.Dimensions}); KendoItem.fromJson(Map json) { fromMap(json); } fromMap(Map json) { category = json['category']; values = JsonConverters.fromJson(json['values'],'Map',context!); group = json['group']; tooltip = json['tooltip']; Dimensions = JsonConverters.toStringMap(json['Dimensions']); return this; } Map toJson() => { 'category': category, 'values': JsonConverters.toJson(values,'Map',context!), 'group': group, 'tooltip': tooltip, 'Dimensions': Dimensions }; getTypeName() => "KendoItem"; TypeContext? context = _ctx; } class GetDashboardData implements IConvertible { List? Controls; String? LayoutTemplateName; String? GroupBy; List? MetricNames; String? ErrorMessage; bool? NeedsGrouping; bool? IsDrillDown; List? DateItems; List? NonDateItems; KendoItem? TotalsItem; List? MapDataTable; bool? IsMapRequest; Map?>? SeriesSources; int? StatusCode; bool? SuppressMultipleSeries; GetDashboardData({this.Controls,this.LayoutTemplateName,this.GroupBy,this.MetricNames,this.ErrorMessage,this.NeedsGrouping,this.IsDrillDown,this.DateItems,this.NonDateItems,this.TotalsItem,this.MapDataTable,this.IsMapRequest,this.SeriesSources,this.StatusCode,this.SuppressMultipleSeries}); GetDashboardData.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Controls = JsonConverters.fromJson(json['Controls'],'List',context!); LayoutTemplateName = json['LayoutTemplateName']; GroupBy = json['GroupBy']; MetricNames = JsonConverters.fromJson(json['MetricNames'],'List',context!); ErrorMessage = json['ErrorMessage']; NeedsGrouping = json['NeedsGrouping']; IsDrillDown = json['IsDrillDown']; DateItems = JsonConverters.fromJson(json['DateItems'],'List',context!); NonDateItems = JsonConverters.fromJson(json['NonDateItems'],'List',context!); TotalsItem = JsonConverters.fromJson(json['TotalsItem'],'KendoItem',context!); MapDataTable = JsonConverters.fromJson(json['MapDataTable'],'List',context!); IsMapRequest = json['IsMapRequest']; SeriesSources = JsonConverters.fromJson(json['SeriesSources'],'Map?>',context!); StatusCode = json['StatusCode']; SuppressMultipleSeries = json['SuppressMultipleSeries']; return this; } Map toJson() => { 'Controls': JsonConverters.toJson(Controls,'List',context!), 'LayoutTemplateName': LayoutTemplateName, 'GroupBy': GroupBy, 'MetricNames': JsonConverters.toJson(MetricNames,'List',context!), 'ErrorMessage': ErrorMessage, 'NeedsGrouping': NeedsGrouping, 'IsDrillDown': IsDrillDown, 'DateItems': JsonConverters.toJson(DateItems,'List',context!), 'NonDateItems': JsonConverters.toJson(NonDateItems,'List',context!), 'TotalsItem': JsonConverters.toJson(TotalsItem,'KendoItem',context!), 'MapDataTable': JsonConverters.toJson(MapDataTable,'List',context!), 'IsMapRequest': IsMapRequest, 'SeriesSources': JsonConverters.toJson(SeriesSources,'Map?>',context!), 'StatusCode': StatusCode, 'SuppressMultipleSeries': SuppressMultipleSeries }; getTypeName() => "GetDashboardData"; TypeContext? context = _ctx; } // @Route("/Sitefinity/Analytics/GetDashboardData") // @Route("/GetDashboardData") class GetDashboardDataMessage implements IReturn, IConvertible, IPost { String? DashboardId; String? jsStartDate; String? jsEndDate; Map? QueryStringFilters; DateTime? StartDate; DateTime? EndDate; String? GroupBy; Map? Dimensions; String? MaxValue; String? SiteId; GetDashboardDataMessage({this.DashboardId,this.jsStartDate,this.jsEndDate,this.QueryStringFilters,this.StartDate,this.EndDate,this.GroupBy,this.Dimensions,this.MaxValue,this.SiteId}); GetDashboardDataMessage.fromJson(Map json) { fromMap(json); } fromMap(Map json) { DashboardId = json['DashboardId']; jsStartDate = json['jsStartDate']; jsEndDate = json['jsEndDate']; QueryStringFilters = JsonConverters.toStringMap(json['QueryStringFilters']); StartDate = JsonConverters.fromJson(json['StartDate'],'DateTime',context!); EndDate = JsonConverters.fromJson(json['EndDate'],'DateTime',context!); GroupBy = json['GroupBy']; Dimensions = JsonConverters.toStringMap(json['Dimensions']); MaxValue = json['MaxValue']; SiteId = json['SiteId']; return this; } Map toJson() => { 'DashboardId': DashboardId, 'jsStartDate': jsStartDate, 'jsEndDate': jsEndDate, 'QueryStringFilters': QueryStringFilters, 'StartDate': JsonConverters.toJson(StartDate,'DateTime',context!), 'EndDate': JsonConverters.toJson(EndDate,'DateTime',context!), 'GroupBy': GroupBy, 'Dimensions': Dimensions, 'MaxValue': MaxValue, 'SiteId': SiteId }; createResponse() => GetDashboardData(); getResponseTypeName() => "GetDashboardData"; getTypeName() => "GetDashboardDataMessage"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'www.asg.com.au', types: { 'MetricItemDTO': TypeInfo(TypeOf.Class, create:() => MetricItemDTO()), 'DimensionItem': TypeInfo(TypeOf.Class, create:() => DimensionItem()), 'SingleSerie': TypeInfo(TypeOf.Class, create:() => SingleSerie()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'DashBoardControl': TypeInfo(TypeOf.Class, create:() => DashBoardControl()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'KendoItem': TypeInfo(TypeOf.Class, create:() => KendoItem()), 'Map': TypeInfo(TypeOf.Class, create:() => Map()), 'GetDashboardData': TypeInfo(TypeOf.Class, create:() => GetDashboardData()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'Map?>': TypeInfo(TypeOf.Class, create:() => Map?>()), 'GetDashboardDataMessage': TypeInfo(TypeOf.Class, create:() => GetDashboardDataMessage()), });