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); }