コード例 #1
0
        /// <summary>
        /// Creates datasets in Power BI
        /// </summary>
        /// <param name="TableName">string</param>
        /// <returns>bool, true if dataset created</returns>
        internal bool CreateDatasets(string TableName, XmlNode xnData, out string[] NewDataset)
        {
            DataSet        dsData = new DataSet();
            SqlDataAdapter objData;

            if (TableName.Contains(","))
            {
                string[] sarrTables = TableName.Split(',');

                foreach (string sTableName in sarrTables)
                {
                    //Fetch columns from XML
                    string sColumns = xnData.SelectSingleNode("./JobMetadata[@Datasetname='" + sTableName + "']").Attributes["Columns"].Value;
                    sColumns = BuildSQLColumn(sColumns);
                    objData  = new SqlDataAdapter("SELECT " + sColumns + " FROM [" + sTableName + "] T1 ", ConnectionString);
                    objData.Fill(dsData, sTableName);
                    Log.WriteMessage("Filling the dataset");
                }
            }
            else
            {
                //Fetch columns from XML
                string sColumns = xnData.SelectSingleNode("./JobMetadata[@Datasetname='" + TableName + "']").Attributes["Columns"].Value;
                sColumns = BuildSQLColumn(sColumns);

                objData = new SqlDataAdapter("SELECT " + sColumns + " FROM [" + TableName + "] T1 ", ConnectionString);
                objData.Fill(dsData, TableName);
                Log.WriteMessage("Filling the dataset");
            }

            //Create a POST web request to list all datasets
            HttpWebRequest request = GetDatasetRequest(datasetsUri, "POST", GetAccessToken());

            Log.WriteMessage("Posting request using Json Schema");
            string strJason        = JSONBuilder.GetJsonSchema(dsData, PowerBIDatasetName);
            string responseContent = PostRequest(request, strJason);

            //Get list from response
            if (responseContent != "")
            {
                NewDataset = responseContent.Split(',');
            }
            else
            {
                NewDataset = null;
            }

            request = null;

            return(true);
        }