private void RefreshHouses(StreetDto street)
 {
     HouseList.Clear();
     if (street == null)
     {
         return;
     }
     RequestService.GetHouses(street.Id, SelectedCompany?.Id).ToList().ForEach(h => HouseList.Add(h));
 }
 private void ChangeStreet(int?streetId)
 {
     HouseList.Clear();
     if (!streetId.HasValue)
     {
         return;
     }
     foreach (var house in _requestService.GetHouses(streetId.Value).OrderBy(s => s.Building?.PadLeft(6, '0')).ThenBy(s => s.Corpus?.PadLeft(6, '0')))
     {
         HouseList.Add(house);
     }
     OnPropertyChanged(nameof(HouseList));
 }
Example #3
0
        public async Task ChoseHouseAsync(int deck)
        {
            if (_gameContainer.CanSendMessage())
            {
                await _gameContainer.Network !.SendAllAsync("chosehouse", deck);
            }
            HouseInfo thisHouse = CardsModule.GetHouseCard(deck);
            await _gameContainer.ShowCardAsync(thisHouse);

            _gameContainer.SingleInfo !.Hand.Add(thisHouse);
            _gameContainer.SaveRoot !.HouseList.Clear();
            PopulatePlayerProcesses.FillInfo(_gameContainer.SingleInfo); //i think here too.
            _gameContainer.TakeOutExpense(thisHouse.HousePrice);
            _gameContainer.GameStatus = EnumWhatStatus.NeedToSpin;
            await _gameContainer.ContinueTurnAsync !.Invoke();
        }
        //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}");
            }
        }