示例#1
0
        /// <summary>
        /// Set the displayed results' sort order
        /// </summary>
        /// <param name="sortType">Specifies which sort type to use</param>
        /// <param name="isDescendent">Specifies whether the results are sorted descendently. True means yes, False means no</param>
        public static void SetSortOrder(SortType sortType, bool isDescendent)
        {
            string typeString;

            if (sortType.Equals(SortType.ViewCount))
            {
                typeString = "orderByViews()";
            }
            else
            {
                typeString = "orderByDate()";
            }

            var sortElement = Browser.Driver.FindElement(By.XPath("//a[@ng-click='" + typeString + "']"));

            if (!sortElement.Selected)
            {
                sortElement.Click();
            }

            string orderString = isDescendent ? "sort_down" : "sort_up";

            if (!sortElement.FindElement(By.ClassName("sort-icon")).GetAttribute("src").Contains(orderString))
            {
                sortElement.Click();
            }
        }
示例#2
0
    public IPromise <List <TournamentObject> > SortBy(SortType type, List <TournamentObject> tournamentList)
    {
        List <TournamentObject> result = new List <TournamentObject>();

        if (type.Equals(SortType.Result) || type.Equals(SortType.Winner))
        {
            return(new Promise <List <TournamentObject> >((action, exeption) => {
                TournamentManager.Instance.GetDetailsTournamentsObject(Array.ConvertAll(tournamentList.ToArray(), detail => detail.Id.Id))
                .Then(tournamentDetails => {
                    ApiManager.Instance.Database.GetMatches(Array.ConvertAll(tournamentDetails, matche => matche.Matches[matche.Matches.Length - 1].Id))
                    .Then(lastMatches => {
                        ApiManager.Instance.Database.GetAccounts(Array.ConvertAll(lastMatches, winner => winner.MatchWinners[0].Id))
                        .Then(winners => {
                            if (type.Equals(SortType.Winner))
                            {
                                var winnersDistionary = new Dictionary <AccountObject, TournamentObject>();
                                for (int i = 0; i < winners.Length; i++)
                                {
                                    winnersDistionary.Add(winners[i], tournamentList[i]);
                                }
                                var sortedByWinners = currentSortOrder.Equals(SortOrder.Ascending) ? winnersDistionary.OrderBy(pair => pair.Key.Name).ToDictionary(key => key.Key, value => value.Value) : winnersDistionary.OrderByDescending(pair => pair.Key.Name).ToDictionary(key => key.Key, value => value.Value);
                                result.AddRange(sortedByWinners.Values);
                                action(result);
                            }
                            else if (type.Equals(SortType.Result))
                            {
                                var resultDisctionary = new Dictionary <TournamentObject, long>();
                                var me = AuthorizationManager.Instance.UserData.FullAccount.Account.Id;
                                for (int i = 0; i < winners.Length; i++)
                                {
                                    resultDisctionary.Add(tournamentList[i], winners[i].Id.Equals(me) ? (tournamentList[i].PrizePool - tournamentList[i].Options.BuyIn.Amount) : -tournamentList[i].Options.BuyIn.Amount);
                                }
                                var sortedByResult = currentSortOrder.Equals(SortOrder.Ascending) ? resultDisctionary.OrderBy(pair => pair.Value).ToDictionary(key => key.Key, value => value.Value) : resultDisctionary.OrderByDescending(pair => pair.Value).ToDictionary(key => key.Key, value => value.Value);
                                result.AddRange(sortedByResult.Keys);
                                action(result);
                            }
                        });
                    });
                });
            }));
        }
        else
        {
            switch (type)
            {
            case SortType.RegisterDeadline:
                result.AddRange(currentSortOrder.Equals(SortOrder.Ascending)
                                        ? tournamentList.OrderBy(x => x.Options.RegistrationDeadline).ToList()
                                        : tournamentList.OrderByDescending(x => x.Options.RegistrationDeadline)
                                .ToList());
                break;

            case SortType.BuyIn:
                result.AddRange(currentSortOrder.Equals(SortOrder.Ascending)
                                        ? tournamentList.OrderBy(x => x.Options.BuyIn.Amount).ToList()
                                        : tournamentList.OrderByDescending(x => x.Options.BuyIn.Amount).ToList());
                break;

            case SortType.Players:
                result.AddRange(currentSortOrder.Equals(SortOrder.Ascending)
                                        ? tournamentList.OrderBy(x => x.Options.NumberOfPlayers).ToList()
                                        : tournamentList.OrderByDescending(x => x.Options.NumberOfPlayers).ToList());
                break;

            case SortType.GameId:
                result.AddRange(currentSortOrder.Equals(SortOrder.Ascending)
                                        ? tournamentList.OrderBy(x => x.Id.Id).ToList()
                                        : tournamentList.OrderByDescending(x => x.Id.Id).ToList());
                break;

            case SortType.Jackpot:
                result.AddRange(currentSortOrder.Equals(SortOrder.Ascending)
                                        ? tournamentList.OrderBy(x => x.Options.BuyIn.Amount * x.Options.NumberOfPlayers)
                                .ToList()
                                        : tournamentList
                                .OrderByDescending(x => x.Options.BuyIn.Amount * x.Options.NumberOfPlayers)
                                .ToList());
                break;

            case SortType.StartTime:
                if (tournamentList[0].State == ChainTypes.TournamentState.Concluded)
                {
                    result.AddRange(currentSortOrder.Equals(SortOrder.Ascending)
                                            ? tournamentList.OrderBy(x => x.StartTime).ToList()
                                            : tournamentList.OrderByDescending(x => x.StartTime)
                                    .ToList());
                }
                else
                {
                    result.AddRange(currentSortOrder.Equals(SortOrder.Ascending)
                                            ? tournamentList.OrderBy(x => x.Options.StartTime).ToList()
                                            : tournamentList.OrderByDescending(x => x.Options.StartTime)
                                    .ToList());
                }
                break;

            case SortType.Winner:

                break;

            default:
                result.AddRange(tournamentList);
                break;
            }
            tournamentList.Clear();
            tournamentList.AddRange(result);
            return(new Promise <List <TournamentObject> >((action, exeption) => action(tournamentList)));
        }
    }