Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
 public void AddBettingAccountToBettingBank(BettingAccount bettingAccount)
 {
     bettingAccountsHolder.Add(bettingAccount);
 }