public Notification Execute(object obj = null) { Notification notification = new Notification(); BettingAccount bettingAccount = (BettingAccount)obj; GuyNameEnum betGuyName = bettingAccount.BettingAccountHolderName; DogNameEnum betDogName = bettingAccount.BettingDogNameSelected; int betAmount = bettingAccount.BettingAmount; IEnumerable <IGuy> allGuysInTheStadium = _dogRacePalaceStadium.GetAllGuysInTheStadium(); IGuy selectedGuyInStadium = allGuysInTheStadium.Where(a => a.Name == betGuyName).FirstOrDefault(); if (selectedGuyInStadium == null) { notification.Description = AllNotifications.NoGuyAddedToTheStadiumWarning(); notification.Code = NotificationEnum.Warning; } else { var guyCashBalance = selectedGuyInStadium.GetMoneyBalance(); if (guyCashBalance < betAmount) { notification.Description = AllNotifications.BetNotEnoughCashWarning(betGuyName.ToString(), betAmount, (int)guyCashBalance); notification.Code = NotificationEnum.Warning; } else { selectedGuyInStadium.WithdrawMoney(betAmount); _bettingBank.AddBettingAccountToBettingBank(bettingAccount); notification.Description = ClientValidation.StandardBettingNotification(); notification.Code = NotificationEnum.Ok; } } notification.Items = allGuysInTheStadium.Count(); return(notification); }
public void BtnPlaceBet_Click(Label LblBetNotification, List <Label> allGuysLabels, ListBox listBoxBetsPlaced, GuyNameEnum guyName, DogNameEnum dogName, int betAmount) { ICommand placeBetCommand = _commandInvoker.GetCommand(ActionCommandEnum.PlaceBet); BettingAccount bettingAccount = new BettingAccount() { BettingAccountHolderName = guyName, BettingDogNameSelected = dogName, BettingAmount = betAmount }; var notification = placeBetCommand.Execute(bettingAccount); LblBetNotification.Content = notification.Description; LblBetNotification.Foreground = NotificationColors.GetBrushColor(notification.Code); listBoxBetsPlaced.ItemsSource = _bettingBank.GetAllBetsAsDescriptions(); UpdateGuysLabels(allGuysLabels); }
public void AddBettingAccountToBettingBank(BettingAccount bettingAccount) { bettingAccountsHolder.Add(bettingAccount); }