protected override void ProcessRecord() { base.ProcessRecord(); WriteObject($"{Ansi.Color.Foreground.LightCyan}** PUBLISH model **{Ansi.Color.Foreground.Default}"); if (!Model.Exists) { WriteObject($"{Ansi.Color.Foreground.LightRed}Model file {Model?.FullName} not found.{Ansi.Color.Foreground.Default}"); return; } var pbiConnection = new PbiConnection { TenantId = Tenant, PrincipalId = Principal, ClientSecret = Secret }; var unsupportedMeasures = new List <TabModel.Measure>(); var unsupportedRelationships = new List <TabModel.Relationship>(); var groupId = new Guid(Group); string newDatasetId = pbiConnection.CreatePushDataset(Model, groupId, DatasetName, false, false, DumpUnsupportedMeasure, DumpUnsupportedRelationship).Result; foreach (var unsupportedMeasure in unsupportedMeasures) { WriteObject($"{Ansi.Color.Foreground.LightYellow}Unsupported measure: {Ansi.Color.Foreground.Yellow}{ unsupportedMeasure.Name} {Ansi.Color.Foreground.Default}"); } foreach (var unsupportedRelationship in unsupportedRelationships) { WriteObject($"{Ansi.Color.Foreground.LightYellow}Unsupported relationship: {Ansi.Color.Foreground.Yellow}"); WriteObject( (unsupportedRelationship is TabModel.SingleColumnRelationship sr) ? $"'{sr.FromTable.Name}'[{sr.FromColumn.Name}]{sr.CardinalityText()}'{sr.ToTable.Name}'[{sr.ToColumn.Name}] ({sr.CrossFilteringBehavior})" : unsupportedRelationship.ToString() ); WriteObject($"{Ansi.Color.Foreground.Default}"); } WriteObject($"{Ansi.Color.Foreground.LightCyan}Created dataset id={newDatasetId}{Ansi.Color.Foreground.Default}"); void DumpUnsupportedMeasure(TabModel.Measure unsupportedMeasure) { unsupportedMeasures.Add(unsupportedMeasure); } void DumpUnsupportedRelationship(TabModel.Relationship unsupportedRelationship) { unsupportedRelationships.Add(unsupportedRelationship); } }
static void Publish(FileInfo model, string principal, string secret, string tenant, string group, string datasetName, string datasetId) { Console.WriteLine($"{Ansi.Color.Foreground.LightCyan}** PUBLISH model **{Ansi.Color.Foreground.Default}"); if (!model.Exists) { Console.WriteLine($"{Ansi.Color.Foreground.LightRed}Model file {model?.FullName} not found.{Ansi.Color.Foreground.Default}"); return; } var pbiConnection = new PbiConnection { TenantId = tenant, PrincipalId = principal, ClientSecret = secret }; var groupId = new Guid(group); string newDatasetId = pbiConnection.CreatePushDataset(model, groupId, datasetName, false, false, DumpUnsupportedMeasure, DumpUnsupportedRelationship).Result; Console.WriteLine($"{Ansi.Color.Foreground.LightCyan}Created dataset id={newDatasetId}{Ansi.Color.Foreground.Default}");