void GetData() { var filter = new FollowingFilterModel(); filter.MySchools = mySchools; filter.MySports = mySports; filter.MyTeams = myTeams; var apiTask = new ServiceApi().GetRankings(filter); apiTask.HandleError(ActivityProgresDialog); apiTask.OnSucess(ActivityProgresDialog, response => { if (lvRankings.Adapter == null) { adapter = new CustomListAdapter <Ranking>(response.Result, GetView); adapter.NoContentText = "No Rankings"; lvRankings.Adapter = adapter; } else { adapter.Items = response.Result; adapter.NotifyDataSetChanged(); } slRefresh.Refreshing = false; }); }
void GetData() { var filter = new FollowingFilterModel(); filter.MySchools = mySchools; filter.MySports = mySports; filter.MyTeams = myTeams; filter.SchoolId = SchoolId; var apiTask = new ServiceApi().GetRankings(filter); apiTask.HandleError(); apiTask.OnSucess(response => { if (tvRankings.Source == null) { source = new CustomListSource <Ranking> (response.Result, GetCell, (arg1, arg2) => UITableView.AutomaticDimension); source.NoContentText = "No Rankings"; tvRankings.Source = source; tvRankings.ReloadData(); } else { source.Items = response.Result; tvRankings.ReloadData(); } refreshControl.EndRefreshing(); }); }
public async Task <List <Ranking> > BuildAsync(string userId, FollowingFilterModel filter) { var sportFollows = _repo.Users.Where(m => m.Id == userId).SelectMany(m => m.Sports).Select(m => m.Id); var schoolFollows = _repo.Users.Where(m => m.Id == userId).SelectMany(m => m.Schools).Select(m => m.Id); var teamFollows = _repo.Users.Where(m => m.Id == userId).SelectMany(m => m.Teams).Select(m => m.Id); var query = _repo.Rankings.Where(m => m.Sport.DateDeletedUtc == null).OrderByDescending(m => m.DateCreatedUtc).SelectMany(m => m.RankingTeams); query = query.Where(m => m.Team.School.DateDeletedUtc == null && !string.IsNullOrEmpty(m.TeamId) && m.Team.DateDeletedUtc == null); if (filter.MySchools || filter.MySports || filter.MyTeams) { query = query.Where(m => (filter.MySports && sportFollows.Contains(m.Ranking.SportId)) || (filter.MyTeams && teamFollows.Contains(m.TeamId)) || (filter.MySchools && schoolFollows.Contains(m.Team.SchoolId))); } if (!string.IsNullOrEmpty(filter.SportId)) { query = query.Where(m => m.Team.SportId == filter.SportId); } if (!string.IsNullOrEmpty(filter.SchoolId)) { query = query.Where(m => m.Team.SchoolId == filter.SchoolId); } return(await SelectRankingsAsync(query, teamFollows)); }
public async Task <List <Ranking> > GetRankings(FollowingFilterModel filter) { var data = await Post <List <Ranking> >("/api/Rankings/", filter); return(data); }
public async Task <IHttpActionResult> Post(FollowingFilterModel filter) { var rankings = await new RankingsBuilder(_repo).BuildAsync(User.Identity.GetUserId(), filter); return(Ok(rankings)); }