Exemplo n.º 1
0
        public async Task <PartialViewResult> PinnedTiles()
        {
            var hvm = new HomePageViewModel
            {
                ErrorDisplay = ErrorDisplay,
                AppUserState = AppUserState
            };
            var conn = new InforConnection(reportServerAddress: $"{SettingsManager.GetSettingValueAsString("rpurl")}",
                                           tu: _tu, tup: _tup);

            if (AppUserState == null || AppUserState.Connected == false)
            {
                return(PartialView("_PinnedTiles", hvm));
            }
            hvm.PinnedTiles = new AppTile();
            if (System.IO.File.Exists(Path.Combine(LocalStorageContainer,
                                                   $"{AppUserState.Wgs}{AppUserState.Ds}{AppUserState.UserId}")))
            {
                if (System.IO.File.Exists(Path.Combine(LocalStorageContainer,
                                                       $"{AppUserState.Wgs}{AppUserState.Ds}{AppUserState.UserId}")))
                {
                    hvm = JsonConvert.DeserializeObject <HomePageViewModel>(System.IO.File.ReadAllText(
                                                                                Path.Combine(LocalStorageContainer,
                                                                                             $"{AppUserState.Wgs}{AppUserState.Ds}{AppUserState.UserId}")));
                }
            }
            var result = await conn.GetSearchesWeb(AppUserState.UserName, AppUserState.Wgs, AppUserState.Ds,
                                                   AppUserState.ReportingUserName);

            if (result.Faults.Any())
            {
                hvm.AppUserState.Connected = false;
                ErrorDisplay.ShowError(result.Faults[0].Message);
                return(PartialView("_PinnedTiles", hvm));
            }

            var allsearches  = (InforSearches)result.ReturnObject;
            var distinctApps = allsearches.GroupBy(search => search.App).Select(group => group.First());

            hvm.PinnedTiles.UserTiles.RemoveAll(n => distinctApps.All(ap => ap.App != n.Search.App));
            System.IO.File.WriteAllText(
                Path.Combine(LocalStorageContainer, $"{AppUserState.Wgs}{AppUserState.Ds}{AppUserState.UserId}"),
                JsonConvert.SerializeObject(hvm));
            foreach (var tile in hvm.PinnedTiles.UserTiles)
            {
                //if (tile.Search.IncludeCount)
                //{
                tile.Count = conn.CountWeb(tile.Search, AppUserState.UserName, AppUserState.Wgs, AppUserState.Ds);
            }
            // }
            return(PartialView("_PinnedTiles", hvm));
        }