//protected override async Task ShowHumanCanPlayAsync()
        //{
        //    await base.ShowHumanCanPlayAsync();
        //    if (BasicData.IsXamarinForms && (SaveRoot.GameStatus == EnumWhatStatus.NeedTradeSalary || SaveRoot.GameStatus == EnumWhatStatus.NeedStealTile))
        //    {
        //        await UIPlatform.ShowMessageAsync("Trying to show human can continue");
        //        if (_gameContainer.SubmitPlayerCommand == null)
        //        {
        //            //UIPlatform.ShowError("Nobody set up the submit player command.  Rethink");
        //            return;
        //        }
        //        _gameContainer.SubmitPlayerCommand.ReportCanExecuteChange(); //try this way.
        //        //await Task.Delay(200); //try delay to fix second bug.
        //        //await UIPlatform.ShowMessageAsync("Choose Player Or End Turn");
        //        //_gameContainer.Command.ManualReport();
        //    }
        //}
        async Task IMiscDataNM.MiscDataReceived(string status, string content)
        {
            switch (status) //can't do switch because we don't know what the cases are ahead of time.
            {
            //put in cases here.
            case "spin":
                SpinnerPositionData spin = await js.DeserializeObjectAsync <SpinnerPositionData>(content);

                await _spinnerProcesses.StartSpinningAsync(spin);

                return;

            case "gender":
                EnumGender gender = await js.DeserializeObjectAsync <EnumGender>(content);

                if (_gameContainer.SelectGenderAsync == null)
                {
                    throw new BasicBlankException("Nobody is handling the selecting gender.  Rethink");
                }
                await _gameContainer.SelectGenderAsync.Invoke(gender);

                return;

            case "firstoption":
                EnumStart firsts = await js.DeserializeObjectAsync <EnumStart>(content);

                await _boardProcesses.OpeningOptionAsync(firsts);

                return;

            case "chosecareer":
                await _careerProcesses.ChoseCareerAsync(int.Parse(content));

                return;

            case "purchasecarinsurance":
                await _boardProcesses.PurchaseCarInsuranceAsync();

                return;

            case "purchasedstock":
                await _boardProcesses.PurchaseStockAsync();

                return;

            case "tradedlifeforsalary":
                await _boardProcesses.Trade4TilesAsync();     //i think

                return;

            case "tradedsalary":
                await _tradeSalaryProcesses.TradedSalaryAsync(content);

                return;

            case "stole":
                await _stolenTileProcesses.TilesStolenAsync(content);

                return;

            case "purchasedhouseinsurance":
                await _boardProcesses.PurchaseHouseInsuranceAsync();

                return;

            case "attendednightschool":
                await _boardProcesses.AttendNightSchoolAsync();

                return;

            case "choseretirement":
                EnumFinal finals = await js.DeserializeObjectAsync <EnumFinal>(content);

                await _boardProcesses.RetirementAsync(finals);

                return;

            case "chosestock":
                await _chooseStockProcesses.ChoseStockAsync(int.Parse(content));

                return;

            case "chosesalary":
                await _basicSalaryProcesses.ChoseSalaryAsync(int.Parse(content));

                return;

            case "stockreturned":
                await _returnStockProcesses.StockReturnedAsync(int.Parse(content));

                return;

            case "chosehouse":
                await _houseProcesses.ChoseHouseAsync(int.Parse(content));

                return;

            case "willsellhouse":
                await _boardProcesses.SellHouseAsync();

                return;

            case "twins":
                CustomBasicList <EnumGender> gList = await js.DeserializeObjectAsync <CustomBasicList <EnumGender> >(content);

                await _twinProcesses.GetTwinsAsync(gList);

                return;

            case "houselist":
                CustomBasicList <int> tempList = await js.DeserializeObjectAsync <CustomBasicList <int> >(content);

                SaveRoot !.HouseList.Clear();
                tempList.ForEach(thisIndex => SaveRoot.HouseList.Add(CardsModule.GetHouseCard(thisIndex)));
                await ContinueTurnAsync();

                return;

            default:
                throw new BasicBlankException($"Nothing for status {status}  with the message of {content}");
            }
        }
 //public override bool CanSubmit => true; //temporarily.
 public override Task SubmitAsync()
 {
     return(_processes.TradedSalaryAsync(_model.PlayerChosen));
 }