Example #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();
                    });
                });
            });
        });
    }
    public void SetTournamentInformation(CreateTournamentData data, bool isJoin)
    {
        isJoinToTournament = isJoin;
        currentData        = data;
        gameTitleText.text = "ROCK, PAPER, SCISSORS";
        var username = AuthorizationManager.Instance.Authorization.UserNameData.UserName;

        creatorNameText.text          = Utils.GetFormatedString(username);
        numberOfPlayersText.text      = data.numberOfPlayers.ToString();
        winsAmountText.text           = data.numberOfWins.ToString();
        registrationDeadlineText.text = data.registrationDeadline.ToString("MMMM dd, yyyy hh:mmtt (z)").ToUpper();
        TournamentManager.Instance.GetAssetObject(data.buyInAssetId)
        .Then(asset => {
            buyinText.text =
                Utils.GetFormatedDecimaNumber(data.buyInAmount.ToString()) + asset.Symbol;
            var feeAsset = SpaceTypeId.CreateOne(SpaceType.GlobalProperties);

            Repository
            .GetInPromise <GlobalPropertiesObject>(feeAsset)
            .Then(result => {
                TournamentJoinOperationFeeParametersData joinFee     = null;
                TournamentCreateOperationFeeParametersData createFee = null;

                foreach (var fee in result.Parameters.CurrentFees.Parameters)
                {
                    if (fee != null && fee.Type == ChainTypes.FeeParameters.TournamentJoinOperation)
                    {
                        joinFee = fee as TournamentJoinOperationFeeParametersData;
                    }
                    if (fee != null && fee.Type == ChainTypes.FeeParameters.TournamentCreateOperation)
                    {
                        createFee = fee as TournamentCreateOperationFeeParametersData;
                    }
                }

                var amount   = isJoin ? Convert.ToDouble(createFee.Fee + joinFee.Fee) : Convert.ToDouble(createFee.Fee);
                amount      /= Mathf.Pow(10, asset.Precision);
                feeText.text = amount + asset.Symbol;
                gameObject.SetActive(true);
            });
        });
    }
        protected override FeeParametersData Deserialize(JArray value, Type objectType)
        {
            if (value.IsNullOrEmpty() || value.Count != 2)
            {
                return(null);
            }
            var type = (ChainTypes.FeeParameters)Convert.ToInt32(value.First);

            switch (type)
            {
            case ChainTypes.FeeParameters.TransferOperation:
                return(TransferOperationFeeParametersData.Create(value.Last as JObject));

            case ChainTypes.FeeParameters.AccountCreateOperation:
                return(AccountCreateOperationFeeParametersData.Create(value.Last as JObject));

            case ChainTypes.FeeParameters.TournamentCreateOperation:
                return(TournamentCreateOperationFeeParametersData.Create(value.Last as JObject));

            case ChainTypes.FeeParameters.TournamentJoinOperation:
                return(TournamentJoinOperationFeeParametersData.Create(value.Last as JObject));

            case ChainTypes.FeeParameters.GameMoveOperation:
                return(GameMoveOperationFeeParametersData.Create(value.Last as JObject));

            case ChainTypes.FeeParameters.ProposalCreateOperation:
                return(ProposalCreateOperationFeeParametersData.Create(value.Last as JObject));

            case ChainTypes.FeeParameters.LimitOrderCreateOperation:
            case ChainTypes.FeeParameters.LimitOrderCancelOperation:
            case ChainTypes.FeeParameters.CallOrderUpdateOperation:
            case ChainTypes.FeeParameters.FillOrderOperation:
            case ChainTypes.FeeParameters.AccountUpdateOperation:
            case ChainTypes.FeeParameters.AccountWhitelistOperation:
            case ChainTypes.FeeParameters.AccountUpgradeOperation:
            case ChainTypes.FeeParameters.AccountTransferOperation:
            case ChainTypes.FeeParameters.AssetCreateOperation:
            case ChainTypes.FeeParameters.AssetUpdateOperation:
            case ChainTypes.FeeParameters.AssetUpdateBitassetOperation:
            case ChainTypes.FeeParameters.AssetUpdateFeedProducersOperation:
            case ChainTypes.FeeParameters.AssetIssueOperation:
            case ChainTypes.FeeParameters.AssetReserveOperation:
            case ChainTypes.FeeParameters.AssetFundFeePoolOperation:
            case ChainTypes.FeeParameters.AssetSettleOperation:
            case ChainTypes.FeeParameters.AssetGlobalSettleOperation:
            case ChainTypes.FeeParameters.AssetPublishFeedOperation:
            case ChainTypes.FeeParameters.WitnessCreateOperation:
            case ChainTypes.FeeParameters.WitnessUpdateOperation:
            case ChainTypes.FeeParameters.ProposalUpdateOperation:
            case ChainTypes.FeeParameters.ProposalDeleteOperation:
            case ChainTypes.FeeParameters.WithdrawPermissionCreateOperation:
            case ChainTypes.FeeParameters.WithdrawPermissionUpdateOperation:
            case ChainTypes.FeeParameters.WithdrawPermissionClaimOperation:
            case ChainTypes.FeeParameters.WithdrawPermissionDeleteOperation:
            case ChainTypes.FeeParameters.CommitteeMemberCreateOperation:
            case ChainTypes.FeeParameters.CommitteeMemberUpdateOperation:
            case ChainTypes.FeeParameters.CommitteeMemberUpdateGlobalParametersOperation:
            case ChainTypes.FeeParameters.VestingBalanceCreateOperation:
            case ChainTypes.FeeParameters.VestingBalanceWithdrawOperation:
            case ChainTypes.FeeParameters.WorkerCreateOperation:
            case ChainTypes.FeeParameters.CustomOperation:
            case ChainTypes.FeeParameters.AssertOperation:
            case ChainTypes.FeeParameters.BalanceClaimOperation:
            case ChainTypes.FeeParameters.OverrideTransferOperation:
            case ChainTypes.FeeParameters.TransferToBlindOperation:
            case ChainTypes.FeeParameters.BlindTransferOperation:
            case ChainTypes.FeeParameters.TransferFromBlindOperation:
            case ChainTypes.FeeParameters.AssetSettleCancelOperation:
            case ChainTypes.FeeParameters.AssetClaimFeesOperation:
            case ChainTypes.FeeParameters.FbaDistributeOperation:
            case ChainTypes.FeeParameters.AssetUpdateDividendOperation:
            case ChainTypes.FeeParameters.AssetDividendDistributionOperation:
                // skip
                return(null);

            default:
                Unity.Console.Error("Unexpected fee parameters type:", type);
                return(null);
            }
        }