private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;

            StringBuilder sb;
            int           i = 0;
            int           j = 0;

            object[] columnValues;
            int      currentRowIndex = 0;

            while (true)
            {
                if (worker.CancellationPending == true)
                {
                    e.Cancel = true;

                    break;
                }
                else
                {
                    // Build JSON document to add rows
                    sb = new StringBuilder("{ \"rows\": [");

                    for (i = 0; i < nudBatchSize.Value; i++)
                    {
                        columnValues = new object[columnCount];

                        if (currentRowIndex == rowCount)
                        {
                            currentRowIndex = 0;
                        }
                        ;

                        for (j = 0; j < columnCount; j++)
                        {
                            columnValues[j] = eventsTable.Rows[currentRowIndex][j];
                        }

                        sb.Append(String.Format(rowTemplate, columnValues));

                        currentRowIndex++;
                    }

                    sb.Remove(sb.Length - 2, 2).Append("]}");

                    if (PowerBI.AddTableRows(mainForm.selectedGroup, mainForm.selectedDataset, mainForm.selectedTable, sb.ToString()))
                    {
                        worker.ReportProgress(requestsSent++);
                    }

                    if (nudDelayBetweenRequests.Value > 0)
                    {
                        Thread.Sleep((int)nudDelayBetweenRequests.Value * 1000);
                    }
                }
            }

            resetEvent.Set();
        }
Beispiel #2
0
        private void cmnuGetTiles_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            TreeNode nodeTiles = selectedNode;

            Tile[] result = PowerBI.GetTiles(selectedGroup, selectedDashboard);

            if (result != null)
            {
                nodeTiles.Nodes.Clear();

                TreeNode nodeTile;

                foreach (Tile tile in result)
                {
                    nodeTile                  = new TreeNode((string.IsNullOrEmpty(tile.title)) ? "[No title]" : tile.title);
                    nodeTile.ImageIndex       = nodeTile.SelectedImageIndex = 7;
                    nodeTile.Tag              = tile;
                    nodeTile.ToolTipText      = String.Format("TILE\r\nid: {0}\r\ntitle: {1}\r\nsubTitle: {2}\r\nembedUrl: {3}", tile.id, tile.title, tile.subTitle, tile.embedUrl);
                    nodeTile.ContextMenuStrip = cmsTile;
                    nodeTiles.Nodes.Add(nodeTile);
                }

                nodeTiles.Expand();
            }

            this.Cursor = Cursors.Default;
        }
Beispiel #3
0
        private void cmnuGetDatasets_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            TreeNode nodeDatasets = selectedNode;

            Dataset[] result = PowerBI.GetDatasets(selectedGroup);

            if (result != null)
            {
                nodeDatasets.Nodes.Clear();

                TreeNode nodeDataset;
                TreeNode nodeTables;

                foreach (Dataset dataset in result)
                {
                    nodeDataset             = new TreeNode(dataset.name);
                    nodeDataset.ImageIndex  = nodeDataset.SelectedImageIndex = 2;
                    nodeDataset.Tag         = dataset;
                    nodeDataset.ToolTipText = String.Format("DATASET\r\nid: {0}\r\nname: {1}", dataset.id, dataset.name);
                    nodeDatasets.Nodes.Add(nodeDataset);

                    nodeTables                  = new TreeNode("Tables");
                    nodeTables.ImageIndex       = nodeTables.SelectedImageIndex = 1;
                    nodeTables.ContextMenuStrip = cmsTables;
                    nodeDataset.Nodes.Add(nodeTables);
                }

                nodeDatasets.Expand();
            }

            this.Cursor = Cursors.Default;
        }
Beispiel #4
0
        private void cmnuGetDashboards_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            TreeNode nodeDashboards = selectedNode;

            Dashboard[] result = PowerBI.GetDashboards(selectedGroup);

            if (result != null)
            {
                nodeDashboards.Nodes.Clear();

                TreeNode nodeDashboard;
                TreeNode nodeTiles;

                foreach (Dashboard dashboard in result)
                {
                    nodeDashboard             = new TreeNode(dashboard.displayName);
                    nodeDashboard.ImageIndex  = nodeDashboard.SelectedImageIndex = 6;
                    nodeDashboard.Tag         = dashboard;
                    nodeDashboard.ToolTipText = String.Format("DASHBOARD\r\nid: {0}\r\ndisplayName: {1}\r\nisReadOnly: {2}", dashboard.id, dashboard.displayName, dashboard.isReadOnly);
                    nodeDashboards.Nodes.Add(nodeDashboard);

                    nodeTiles                  = new TreeNode("Tiles");
                    nodeTiles.ImageIndex       = nodeTiles.SelectedImageIndex = 1;
                    nodeTiles.ContextMenuStrip = cmsTiles;
                    nodeDashboard.Nodes.Add(nodeTiles);
                }

                nodeDashboards.Expand();
            }

            this.Cursor = Cursors.Default;
        }
Beispiel #5
0
        private void cmnuGetTables_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            TreeNode nodeTables = selectedNode;

            Table[] result = PowerBI.GetTables(selectedGroup, selectedDataset);

            if (result != null)
            {
                nodeTables.Nodes.Clear();

                TreeNode nodeTable;

                foreach (Table table in result)
                {
                    nodeTable                  = new TreeNode(table.name);
                    nodeTable.ImageIndex       = nodeTable.SelectedImageIndex = 3;
                    nodeTable.Tag              = table;
                    nodeTable.ToolTipText      = String.Format("TABLE\r\nname: {0}", table.name);
                    nodeTable.ContextMenuStrip = cmsTable;
                    nodeTables.Nodes.Add(nodeTable);
                }

                nodeTables.Expand();
            }

            this.Cursor = Cursors.Default;
        }
Beispiel #6
0
        private void cmnuClearAllRows_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            TreeNode nodeTable = selectedNode;
            string   datasetId = ((Dataset)nodeTable.Parent.Parent.Tag).id;
            string   tableName = nodeTable.Text;

            PowerBI.ClearTableRows(selectedGroup, selectedDataset, selectedTable);

            this.Cursor = Cursors.Default;
        }
Beispiel #7
0
        private void cmnuDisconnect_Click(object sender, EventArgs e)
        {
            PowerBI.Disconnect();

            isConnected = false;

            mnuConnect.Enabled = true;

            treeView1.Nodes.Clear();

            tslConnection.Text      = "Not Connected";
            tslConnection.ForeColor = Color.Black;
        }
Beispiel #8
0
        private void mnuConnect_Click(object sender, EventArgs e)
        {
            if ((PowerBI.clientId == String.Empty) || (PowerBI.redirectUri == String.Empty))
            {
                MessageBox.Show("You must use Options to enter the Client ID and Redirect URI.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            this.Cursor = Cursors.WaitCursor;

            string token = PowerBI.GetAccessToken();

            if (token != null)
            {
                isConnected = true;

                mnuConnect.Enabled      = false;
                tslConnection.Text      = "Connected";
                tslConnection.ForeColor = Color.Green;

                TreeNode nodePowerBIService = new TreeNode("Power BI Service");
                nodePowerBIService.ImageIndex       = nodePowerBIService.SelectedImageIndex = 0;
                nodePowerBIService.ContextMenuStrip = cmsService;
                treeView1.Nodes.Add(nodePowerBIService);

                TreeNode nodeUserWorkspace = new TreeNode("User Workspace");
                nodeUserWorkspace.ImageIndex = nodeUserWorkspace.SelectedImageIndex = 5;
                nodePowerBIService.Nodes.Add(nodeUserWorkspace);

                TreeNode nodeDatasets = new TreeNode("Datasets");
                nodeDatasets.ImageIndex       = nodeDatasets.SelectedImageIndex = 1;
                nodeDatasets.ContextMenuStrip = cmsDatasets;
                nodeUserWorkspace.Nodes.Add(nodeDatasets);

                TreeNode nodeDashboards = new TreeNode("Dashboards");
                nodeDashboards.ImageIndex       = nodeDashboards.SelectedImageIndex = 1;
                nodeDashboards.ContextMenuStrip = cmsDashboards;
                nodeUserWorkspace.Nodes.Add(nodeDashboards);

                TreeNode nodeGroups = new TreeNode("App Workspaces");
                nodeGroups.ImageIndex       = nodeGroups.SelectedImageIndex = 1;
                nodeGroups.ContextMenuStrip = cmsGroups;
                nodePowerBIService.Nodes.Add(nodeGroups);

                nodePowerBIService.Expand();
            }

            Console.WriteLine("> ");

            this.Cursor = Cursors.Default;
        }
Beispiel #9
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (txtJsonContent.Text.Length == 0)
            {
                MessageBox.Show("You must enter the New Table Schema JSON document.", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            this.Cursor = Cursors.WaitCursor;

            if (PowerBI.UpdateTableSchema(mainForm.selectedGroup, mainForm.selectedDataset, mainForm.selectedTable, txtJsonContent.Text))
            {
                btnClose_Click(null, null);
            }
            else
            {
                MessageBox.Show("Table schema could not be updated.\r\nEnsure that the JSON document is valid.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            this.Cursor = Cursors.Default;
        }
Beispiel #10
0
        private void cmnuGetGroups_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            TreeNode nodeGroups = selectedNode;

            Group[] result = PowerBI.GetGroups();

            if (result != null)
            {
                nodeGroups.Nodes.Clear();

                TreeNode nodeGroup;

                foreach (Group group in result)
                {
                    nodeGroup             = new TreeNode(group.name);
                    nodeGroup.ImageIndex  = nodeGroup.SelectedImageIndex = 4;
                    nodeGroup.Tag         = group;
                    nodeGroup.ToolTipText = String.Format("APP WORKSPACE\r\nid: {0}\r\nname: {1}", group.id, group.name);
                    nodeGroups.Nodes.Add(nodeGroup);

                    TreeNode nodeDatasets = new TreeNode("Datasets");
                    nodeDatasets.ImageIndex       = nodeDatasets.SelectedImageIndex = 1;
                    nodeDatasets.ContextMenuStrip = cmsDatasets;
                    nodeGroup.Nodes.Add(nodeDatasets);

                    TreeNode nodeDashboards = new TreeNode("Dashboards");
                    nodeDashboards.ImageIndex       = nodeDashboards.SelectedImageIndex = 1;
                    nodeDashboards.ContextMenuStrip = cmsDashboards;
                    nodeGroup.Nodes.Add(nodeDashboards);
                }

                nodeGroups.Expand();
            }

            this.Cursor = Cursors.Default;
        }
Beispiel #11
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (txtJsonContent.Text.Length == 0)
            {
                MessageBox.Show("You must enter the New Table Rows JSON document.", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            this.Cursor = Cursors.WaitCursor;

            // If created successfully, update the application treeview
            if (PowerBI.AddTableRows(mainForm.selectedGroup, mainForm.selectedDataset, mainForm.selectedTable, txtJsonContent.Text))
            {
                btnClose_Click(null, null);
            }
            else
            {
                MessageBox.Show("Table row could not be added. Ensure that the JSON document is valid.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            this.Cursor = Cursors.Default;
        }
Beispiel #12
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;

            // Create the dataset
            Dataset dataset = PowerBI.CreateDataset(mainForm.selectedGroup, txtJsonContent.Text, cboDefaultRetentionPolicy.Text);

            // If created successfully, update the application treeview
            if (dataset != null)
            {
                // Add the dataset node to main form treeview control
                TreeNode nodeDataset = new TreeNode(dataset.name);
                nodeDataset.ImageIndex  = nodeDataset.SelectedImageIndex = 2;
                nodeDataset.Tag         = dataset;
                nodeDataset.ToolTipText = String.Format("DATASET\r\nid: {0}\r\nname: {1}", dataset.id, dataset.name);
                nodeDatasets.Nodes.Add(nodeDataset);

                // Add Tables node
                TreeNode nodeTables = new TreeNode("Tables");
                nodeTables.ImageIndex       = nodeTables.SelectedImageIndex = 1;
                nodeTables.ContextMenuStrip = mainForm.cmsTables;
                nodeDataset.Nodes.Add(nodeTables);

                nodeDataset.ExpandAll();

                mainForm.treeView1.SelectedNode = nodeDataset;

                btnClose_Click(null, null);
            }
            else
            {
                MessageBox.Show("Dataset could not be created.\r\n\r\nEnsure that the JSON document is valid.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            this.Cursor = Cursors.Default;
        }