Пример #1
0
    public void SetUp(TournamentObject tournament)
    {
        ApiManager.Instance.Database
        .GetAccountBalances(AuthorizationManager.Instance.UserData.FullAccount.Account.Id.Id, Array.ConvertAll(AuthorizationManager.Instance.UserData.FullAccount.Balances,
                                                                                                               balance => balance.AssetType.Id))
        .Then(accountBalances => {
            AssetData asset = null;
            foreach (var balance in accountBalances)
            {
                if (balance.Asset.Equals(tournament.Options.BuyIn.Asset))
                {
                    asset = balance;
                }
            }
            var feeAsset = SpaceTypeId.CreateOne(SpaceType.GlobalProperties);

            Repository.GetInPromise <GlobalPropertiesObject>(feeAsset)
            .Then(result => {
                TournamentJoinOperationFeeParametersData myFee = null;
                foreach (var fee in result.Parameters.CurrentFees.Parameters)
                {
                    if (fee != null && fee.Type == ChainTypes.FeeParameters.TournamentJoinOperation)
                    {
                        myFee = fee as TournamentJoinOperationFeeParametersData;
                    }
                }
                currentAccountBalanceObject = asset;
                currentFee = (long)myFee.Fee;

                Repository.GetInPromise <AssetObject>(asset.Asset)
                .Then(assetObject => {
                    buyinText.text = tournament.Options.BuyIn.Amount / Math.Pow(10, assetObject.Precision) + assetObject.Symbol;
                    feeText.text   = myFee.Fee / Math.Pow(10, assetObject.Precision) + assetObject.Symbol;

                    ApiManager.Instance.Database.GetAccount(tournament.Creator.Id)
                    .Then(creator => {
                        creatorNameText.text          = Utils.GetFormatedString(creator.Name);
                        var data                      = new JoinToTournamentData();
                        data.tournament               = tournament;
                        data.account                  = AuthorizationManager.Instance.UserData.FullAccount.Account.Id;
                        currentData                   = data;
                        gameTitleText.text            = "ROCK, PAPER, SCISSORS";
                        numberOfPlayersText.text      = data.tournament.Options.NumberOfPlayers.ToString();
                        winsAmountText.text           = data.tournament.Options.NumberOfWins.ToString();
                        registrationDeadlineText.text = data.tournament.Options.RegistrationDeadline.ToString("MMMM dd, yyyy hh:mmtt (z)").ToUpper();
                        Show();
                    });
                });
            });
        });
    }
    void JoinTournament(SpaceTypeId tournament)
    {
        if (isJoinToTournament)
        {
            Action <TournamentObject> JoinToTournament = tournamentObject => {
                var joinTournamentData = new JoinToTournamentData();
                joinTournamentData.tournament = tournamentObject;
                joinTournamentData.account    = AuthorizationManager.Instance.Authorization.UserNameData.FullAccount.Account.Id;

                TournamentTransactionService.GenerateJoinToTournamentOperation(joinTournamentData)
                .Then(operation => {
                    TournamentTransactionService.JoinToTournament(operation)
                    .Then(() => JoinOperationOnDone("Your tournament was successfully created & joined!", true))
                    .Catch(exception => JoinOperationOnDone("Your tournament was successfully created, but not joined!", false));
                })
                .Catch(exception => JoinOperationOnDone("There was a mistake during joining of a tournament!", false));
            };
            Repository.GetInPromise(tournament, () => TournamentManager.Instance.LoadTournament(tournament.Id)).Then(JoinToTournament);
        }
    }