Esempio n. 1
0
        /// <summary>
        /// Assert a collection is sorted
        /// </summary>
        public static void IsSorted <T>(System.Collections.Generic.IEnumerable <T> sorted) where T : IComparable <T>
        {
            var previous = sorted.First();

            foreach (var item in sorted.Skip(1))
            {
                if (item.CompareTo(previous) < 0)
                {
                    throw new Exception($"Collection is not sorted. {item} is not greater than {previous}.");
                }
                previous = item;
            }
        }
Esempio n. 2
0
        private static Option <int> Solve(
            int currentFrequency,
            System.Collections.Generic.IEnumerable <Option <int> > frequencies,
            int finalFrequency,
            HashSet <int> partialFrequencies
            )
        {
            int newFinalFrequency = finalFrequency + currentFrequency;

            return(partialFrequencies.Contains(newFinalFrequency) ?
                   newFinalFrequency :
                   Solve(frequencies.First(), frequencies.Skip(1), newFinalFrequency, partialFrequencies.Add(newFinalFrequency)));
        }
 public void LoadData()
 {
     System.Collections.Generic.IEnumerable <CMS.Article> it = ListArticle.Take(Number);
     if (it.Count() > 0)
     {
         CMS.Article article = it.Take(1).Single();
         ArticleId              = article.Id.ToString();
         ArticleName            = article.Name;
         ArticleDescription     = article.GetDescription();
         rptTabTopic.DataSource = it.Skip(1);
         rptTabTopic.DataBind();
     }
 }
        public async Task GetTeamWithRankAsync(int rank, string location, DivisionWithCategory?divisionAndCat, Tier?tier)
        {
            using (Context.Channel.EnterTypingState())
            {
                if (rank < 1)
                {
                    throw new ArgumentOutOfRangeException(nameof(rank));
                }

                var filter = new ScoreboardFilterInfo(divisionAndCat?.Division, tier, divisionAndCat?.Category, location);

                var teams = await ScoreRetrievalService.GetScoreboardAsync(filter).ConfigureAwait(false);

                System.Collections.Generic.IEnumerable <ScoreboardSummaryEntry> teamList = teams.TeamList;


                var team = teamList.Skip(rank - 1).First();
                ScoreboardDetails teamScore = await ScoreRetrievalService.GetDetailsAsync(team.TeamId).ConfigureAwait(false);

                if (teamScore == null)
                {
                    throw new Exception("Error obtaining team score.");
                }

                string classSpec = Utilities.JoinNonNullNonEmpty(", ",
                                                                 LocationResolutionService.GetFullNameOrNull(location),
                                                                 filter.Division.HasValue ? (filter.Division.Value.ToStringCamelCaseToSpace() + " Division") : null,
                                                                 filter.Category?.ToCanonicalName(),
                                                                 tier.HasValue ? (tier.Value.ToStringCamelCaseToSpace() + " Tier") : null);

                await ReplyAsync(
                    "**" + Utilities.AppendOrdinalSuffix(rank) + " place " + (classSpec.Length == 0 ? "overall" : "in " + classSpec) + ": " + team.TeamId + "**",
                    embed : ScoreEmbedBuilder.CreateTeamDetailsEmbed(teamScore,
                                                                     completeScoreboard : await ScoreRetrievalService.GetScoreboardAsync(new ScoreboardFilterInfo(null, null)).ConfigureAwait(false),
                                                                     peerFilter : CompetitionRoundLogicService.GetPeerFilter(ScoreRetrievalService.Round, team),
                                                                     timeZone : await Preferences.GetTimeZoneAsync(Context.Guild, Context.User).ConfigureAwait(false)).Build()).ConfigureAwait(false);
            }
        }