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); } }