public Dashboard PowerBIDetails(Dashboard board, User user)
        {
            string url = WebConfigurationManager.AppSettings["ReportingServerURL"];

            board.PowerBiModelList = new List <PowerBiModel>();
            //Get KPIs
            PowerBIReportsApi pwBi = new PowerBIReportsApi(IO.Swagger.Client.Configuration.DefaultApiClient);

            var power = pwBi.GetPowerBIReportsString(0, 0, "", "", "", "", user.Username, user.Password, url);

            JObject jObject = JObject.Parse(power);

            board.PowerBiCount = ((Newtonsoft.Json.Linq.JContainer)jObject.Last.Last).Count;

            if (((Newtonsoft.Json.Linq.JContainer)jObject.Last.Last).Count > 0)
            {
                foreach (var item in ((Newtonsoft.Json.Linq.JContainer)jObject.Last.Last).ToList())
                {
                    PowerBiModel model      = new PowerBiModel();
                    var          startIndex = item.ToString().IndexOf("Name");
                    startIndex = startIndex + 8;
                    var endINdex = item.ToString().IndexOf("Description");
                    endINdex   = endINdex - 7;
                    model.Name = item.ToString().Substring(startIndex, (endINdex - startIndex));
                    board.PowerBiModelList.Add(model);
                }
            }
            return(board);
        }
示例#2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                List <PowerBiModel> reportsList = new List <PowerBiModel>();
                var devToken = PowerBIToken.CreateReportEmbedTokenWithScopes(workspaceCollection, workspaceId);
                using (var client = this.CreatePowerBIClient(devToken))
                {
                    var reportsResponse = client.Reports.GetReports(workspaceCollection, workspaceId);

                    for (int i = 0; i < reportsResponse.Value.ToList().Count; i++)
                    {
                        reportsList.Add(new PowerBiModel
                        {
                            Id       = reportsResponse.Value[i].Id,
                            Name     = reportsResponse.Value[i].Name,
                            EmbedUrl = reportsResponse.Value[i].EmbedUrl,
                            WebUrl   = reportsResponse.Value[i].WebUrl,
                            //Report = reportsResponse.Value[i].
                        }
                                        );
                    }
                }

                var reportId = reportsList[0].Id;
                using (var client = this.CreatePowerBIClient(devToken))
                {
                    var embedToken = PowerBIToken.CreateReportEmbedToken(workspaceCollection, workspaceId, reportId);

                    var viewModel = new PowerBiModel
                    {
                        Report      = reportsList[0].Report,
                        AccessToken = embedToken.Generate(accessKey)
                    };

                    accessTokenText.Value = viewModel.AccessToken;
                    embedUrlText.Value    = viewModel.EmbedUrl;
                }
            }
        }
        public ActionResult Index()
        {
            if (CheckUserSession())
            {
                _dbService = new DashboardService();
                Dashboard board = new Dashboard();
                board = _dbService.KpiDetails(board, (Models.User)Session["user"]);

                //Get PowerBiReports
                //board = _dbService.PowerBIDetails(board, (Models.User)Session["user"]);
                //Get Reports
                board = _dbService.SSRSReportDetails(board, (Models.User)Session["user"]);

                ReportingService2010 rs   = new ReportingService2010();
                Models.User          user = (Models.User)Session["user"];
                string url = WebConfigurationManager.AppSettings["ReportingServerURL"];
                rs.Credentials = new System.Net.NetworkCredential(user.Username, user.Password, url);
                var items = rs.ListChildren("/", true);
                board.PowerBiModelList = new List <PowerBiModel>();
                int pcnt = 0;
                for (var i = 0; i < items.Length; i++)
                {
                    if (items[i].TypeName.Equals("PowerBIReport"))
                    {//Report   Kpi
                        PowerBiModel pbi = new PowerBiModel();
                        pbi.Name = items[i].Name;
                        board.PowerBiModelList.Add(pbi);
                        pcnt++;
                    }
                }
                board.PowerBiCount = pcnt;
                return(View(board));
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
示例#4
0
        public ActionResult Index(string cfd = "")
        {
            if (CheckUserSession())
            {
                this.InitialFunc();

                ViewBag.folders        = _folders;
                ViewBag.current_folder = cfd;
                if (cfd.Equals("") && _folders.Count > 0)
                {
                    ViewBag.current_folder = _folders[0];
                }

                _dbService = new DashboardService();
                Dashboard board = new Dashboard();
                board = _dbService.KpiDetails(board, (Models.User)Session["user"]);

                //Get PowerBiReports
                //board = _dbService.PowerBIDetails(board, (Models.User)Session["user"]);
                //Get Reports
                //board = _dbService.SSRSReportDetails(board, (Models.User)Session["user"]);

                ReportingService2010 rs   = new ReportingService2010();
                Models.User          user = (Models.User)Session["user"];
                rs.Credentials = new System.Net.NetworkCredential(user.Username, user.Password, _url);
                var items = rs.ListChildren("/" + ViewBag.current_folder, true); //Hoxworth Name Path
                board.PowerBiModelList = new List <PowerBiModel>();
                int pcnt = 0;
                for (var i = 0; i < items.Length; i++)
                {
                    if (items[i].TypeName.Equals("PowerBIReport"))
                    {//Report   Kpi
                        PowerBiModel pbi = new PowerBiModel();
                        pbi.Name = items[i].Name;
                        board.PowerBiModelList.Add(pbi);
                        pcnt++;
                    }
                }
                board.PowerBiCount = pcnt;


                board.ReportModelList = new List <ReportModel>();
                pcnt = 0;
                for (var i = 0; i < items.Length; i++)
                {
                    if (items[i].TypeName.Equals("Report"))
                    {//Report   Kpi
                        ReportModel pbi = new ReportModel();
                        pbi.Name = items[i].Name;
                        board.ReportModelList.Add(pbi);
                        pcnt++;
                    }
                }
                board.ReportCount = pcnt;

                ViewBag.current_page = "index";

                return(View(board));
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
示例#5
0
        public ActionResult Guide(string cfd = "", int rid = 0, string sch = "", string returnUrl = null)
        {
            if (CheckUserSession())
            {
                if (sch == null)
                {
                    sch = "";
                }
                ViewData["ReturnUrl"]  = returnUrl;
                ViewData["ReturnMsg"]  = "";
                ViewData["ReturnCode"] = 0;
                ViewBag.rid            = rid;
                ViewBag.sch            = "";
                ViewBag.cid            = 0;
                ViewBag.screenUrl      = "";

                string json = string.Empty;
                //string ur = @"http://52.191.118.216:801/Guide/GetReports";
                string         ur      = @"http://*****:*****@"http://52.191.118.216:801/Guide/GetReport?rid=" + rid;
                ur      = @"http://localhost:8801/Guide/GetReport?rid=" + rid;
                request = (HttpWebRequest)WebRequest.Create(ur);
                request.AutomaticDecompression = DecompressionMethods.GZip;

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                    using (Stream stream = response.GetResponseStream())
                        using (StreamReader reader = new StreamReader(stream))
                        {
                            json = reader.ReadToEnd();
                        }
                var modelreport = JsonConvert.DeserializeObject <Dictionary <string, object> >(json);

                ViewBag.userList    = JsonConvert.DeserializeObject <List <ReportInfo> >(modelreport["userList"].ToString());
                ViewBag.freqList    = JsonConvert.DeserializeObject <List <ReportInfo> >(modelreport["freqList"].ToString());
                ViewBag.filterList  = JsonConvert.DeserializeObject <List <ReportInfo> >(modelreport["filterList"].ToString());
                ViewBag.summaryList = JsonConvert.DeserializeObject <List <ReportInfo> >(modelreport["summaryList"].ToString());
                ViewBag.columnList  = JsonConvert.DeserializeObject <List <ReportInfo> >(modelreport["columnList"].ToString());
                ViewBag.drill1List  = JsonConvert.DeserializeObject <List <ReportInfo> >(modelreport["drill1List"].ToString());
                ViewBag.drill2List  = JsonConvert.DeserializeObject <List <ReportInfo> >(modelreport["drill2List"].ToString());

                this.InitialFunc();
                ViewBag.folders        = _folders;
                ViewBag.current_folder = cfd;
                if (cfd.Equals("") && _folders.Count > 0)
                {
                    ViewBag.current_folder = _folders[0];
                }

                _dbService = new DashboardService();
                Dashboard board = new Dashboard();
                board = _dbService.KpiDetails(board, (Models.User)Session["user"]);

                //Get PowerBiReports
                //board = _dbService.PowerBIDetails(board, (Models.User)Session["user"]);
                //Get Reports
                //board = _dbService.SSRSReportDetails(board, (Models.User)Session["user"]);

                ReportingService2010 rs   = new ReportingService2010();
                Models.User          user = (Models.User)Session["user"];
                rs.Credentials = new System.Net.NetworkCredential(user.Username, user.Password, _url);
                var items = rs.ListChildren("/" + ViewBag.current_folder, true); //Hoxworth Name Path
                board.PowerBiModelList = new List <PowerBiModel>();
                int pcnt = 0;
                for (var i = 0; i < items.Length; i++)
                {
                    if (items[i].TypeName.Equals("PowerBIReport"))
                    {//Report   Kpi
                        PowerBiModel pbi = new PowerBiModel();
                        pbi.Name = items[i].Name;
                        board.PowerBiModelList.Add(pbi);
                        pcnt++;
                    }
                }
                board.PowerBiCount = pcnt;


                board.ReportModelList = new List <ReportModel>();
                pcnt = 0;
                for (var i = 0; i < items.Length; i++)
                {
                    if (items[i].TypeName.Equals("Report"))
                    {//Report   Kpi
                        ReportModel pbi = new ReportModel();
                        pbi.Name = items[i].Name;
                        board.ReportModelList.Add(pbi);
                        pcnt++;
                    }
                }
                board.ReportCount = pcnt;

                ViewBag.current_page = "guide";
                ViewBag.current_rid  = rid;

                return(View(board));
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }