Exemple #1
0
        private async Task <IEnumerable <Rank> > GetRanksFromDatabase(RankDateRange rankDateRange)
        {
            List <Rank> ranks = new List <Rank>();

            DateTime startDate = this.GetStartDateOfRange(rankDateRange);
            DateTime endDate   = this.GetEndDateOfRange(rankDateRange);

            // get the data from the data store
            var ranksData = await Task.Run(() => _RankData.GetRank(startDate, endDate));

            // convert the data to a service type variable
            foreach (var rankData in ranksData)
            {
                ranks.Add(new Rank()
                {
                    Number = 1,
                    Name   = "Name",
                    Wins   = 1,
                    Losses = 1
                });
            }

            // work out the ranking for each participant
            ranks = this.RankTheChallenges(ranks);

            return(ranks);
        }
Exemple #2
0
        private DateTime GetStartDateOfRange(RankDateRange rankDateRange)
        {
            DateTime date = DateTime.Now;

            switch (rankDateRange)
            {
            case RankDateRange.Week:
                return(date.FirstDayOfWeek());

            case RankDateRange.Month:
                return(date.FirstDayOfMonth());

            default:
                return(date.Date);
            }
        }
Exemple #3
0
        public async Task <IActionResult> Get(int categoryId, RankDateRange rankDateRange = RankDateRange.Day)
        {
            var ranks = await _rankService.GetRanks(rankDateRange);

            var rankGets = new List <RankGet>();

            foreach (var rank in ranks)
            {
                rankGets.Add(new RankGet()
                {
                    Number = rank.Number,
                    Name   = rank.Name,
                    Wins   = rank.Wins,
                    Losses = rank.Losses
                });
            }

            return(Ok(ApiHelper.ResponseWrapper(rankGets)));
        }
Exemple #4
0
        private DateTime GetEndDateOfRange(RankDateRange rankDateRange)
        {
            DateTime date       = DateTime.Now;
            DateTime returnDate = DateTime.Now;

            switch (rankDateRange)
            {
            case RankDateRange.Week:
                returnDate = date.LastDayOfWeek();
                break;

            case RankDateRange.Month:
                returnDate = date.LastDayOfMonth();
                break;

            default:
                returnDate = date.Date.AddHours(24);
                break;
            }

            return(returnDate.AddMilliseconds(-1));
        }
Exemple #5
0
        /// <summary>
        /// Get a list of players from the data store
        /// </summary>
        /// <returns>A list of players</returns>
        public async Task <IEnumerable <Rank> > GetRanks(RankDateRange rankDateRange)
        {
            var ranks = await this.GetRanksFromDatabase(rankDateRange);

            return(ranks);
        }