protected ActionResult GetTiles(string dashboardId, string dashboardName)
        {
            Tiles tiles;
            //Configure tiles request
            WebRequest request = WebRequest.Create(
                String.Format("{0}Dashboards/{1}/Tiles",
                              baseUri,
                              dashboardId)) as HttpWebRequest;

            request.Method        = "GET";
            request.ContentLength = 0;
            request.Headers.Add("Authorization", String.Format("Bearer {0}", Session["AccessToken"].ToString()));

            //Get tiles response from request.GetResponse()
            using (var response = request.GetResponse() as HttpWebResponse)
            {
                //Get reader from response stream
                using (var reader = new System.IO.StreamReader(response.GetResponseStream()))
                {
                    //Deserialize JSON string
                    tiles = JsonConvert.DeserializeObject <Tiles>(reader.ReadToEnd());
                }
            }

            var viewModel = new TilesViewModel
            {
                Tiles         = tiles.value,
                DashboardName = dashboardName,
                DashboardId   = dashboardId,
                AccessToken   = Session["AccessToken"].ToString()
            };

            return(View(viewModel));
        }
        public async Task <ActionResult> ListTiles()
        {
            string dashboardId = Request.Form["SelectedDashboard"].ToString();
            var    viewModel   = new TilesViewModel();

            using (var client = await CreatePowerBIClientForISV())
            {
                var tiles = await client.Dashboards.GetTilesInGroupAsync(GroupId, dashboardId);

                viewModel.Tiles       = tiles.Value.ToList();
                viewModel.DashboardId = dashboardId;
            }

            return(View(viewModel));
        }
        public static TilesViewModel GetPriorityCategories(IRepository repository, HttpRequestBase request)
        {
            var topCategories = repository.GetPriorityCategories();

            if (topCategories.Count == 0)
            {
                return(null);
            }

            var defaultGroup = new List <TileViewModel>();

            var tilesViewModel = new TilesViewModel()
            {
                TileGroups = new List <TilesViewModelGroup>
                {
                    new TilesViewModelGroup(null, defaultGroup)
                }
            };

            foreach (var categoryPage in topCategories)
            {
                // Extracting the page id.
                var page = repository.GetPageByCategoryId(categoryPage.VersionId);
                if (page == null)
                {
                    // Log inconsistent items.
                    const string header  = "[CategoryViewModelFactory:GetPriorityCategories],Warning,";
                    const string message = "Model inconsistent: category item doesn't have corresponding page. Category version id: ";
                    repository.LogErrorMessage(string.Concat(header, message, categoryPage.VersionId.ToString()), request);

                    continue;
                }

                defaultGroup.Add(new TileViewModel
                {
                    Link = new NavigationLink {
                        PageId = page.Id
                    },
                    Name    = categoryPage.Name,
                    ImageId = categoryPage.ImageId ?? Guid.Empty
                });
            }

            return(tilesViewModel);
        }
        public TilesPage(BandDeviceInfo info, BandClient bandClient)
            : base(info, bandClient)
        {
            InitializeComponent();

            var addTile = new ToolbarItem
            {
                Text = "Add",
                Icon = OnPlatform(
                    iOS: (FileImageSource)FileImageSource.FromFile("Icons/Add.png"),
                    Android: (FileImageSource)FileImageSource.FromFile("Add.png"),
                    Windows: (FileImageSource)FileImageSource.FromFile("Assets/Icons/Add.png"))
            };

            addTile.Clicked += AddTileButtonClicked;
            ToolbarItems.Add(addTile);

            ViewModel = new TilesViewModel(info, bandClient);
        }