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);
            }
        }
Example #2
0
        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}");