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 IGuy CreateGuy(GuyNameEnum guyName)
        {
            IGuy guy = ContainerConfig.GetInstance <IGuy>();

            guy.Name = guyName;
            guy.SetDeposit(0);

            return(guy);
        }
Example #3
0
        public Notification Execute(object obj = null)
        {
            var guyName      = (GuyNameEnum)obj;
            var notification = new Notification();
            var allGuys      = _dogRacePalaceStadium.GetAllGuysInTheStadium();
            var existingGuy  = allGuys.Where(a => a.Name == guyName).FirstOrDefault();

            if (existingGuy != null)
            {
                notification.Code        = NotificationEnum.Warning;
                notification.Description = AllNotifications.GuyAddedToStadiumWarning(existingGuy.Name.ToString());
                notification.Items       = allGuys.Count();
            }
            else
            {
                IGuy newGuy = _dogRacePalaceStadium.CreateGuy(guyName);
                _dogRacePalaceStadium.AddGuyToTheStadium(newGuy);
                notification.Code        = NotificationEnum.Ok;
                notification.Description = AllNotifications.GuyAddedToStadiumOk(newGuy.Name.ToString());
                notification.Items       = _dogRacePalaceStadium.GetAllGuysInTheStadium().Count();
            }
            return(notification);
        }
Example #4
0
 public CollideResult Collide(IGuy otherObject)
 {
     throw new NotImplementedException();
 }
Example #5
0
 public void RemoveGuyFromTheStadium(IGuy guy)
 {
     guysInTheStadium.Remove(guy);
 }
Example #6
0
 public void AddGuyToTheStadium(IGuy guy)
 {
     guysInTheStadium.Add(guy);
 }