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));
        }
示例#4
0
        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));
        }