public void ResolveGeneralBets3Test()
        {
            var dateTimeProvider = new Mock <IDateTimeProvider>();
            var repository       = new Mock <IGeneralBetsRepository>();
            var userProvider     = new Mock <ILoggedUserProvider>();
            var generalBet       = new GeneralBet()
            {
                GeneralBetId = 1, WinningTeamId = 1
            };

            repository.Setup(rep => rep.GetGeneralBet(1)).Returns(generalBet);
            dateTimeProvider.Setup(item => item.UTCNow).Returns(new DateTime(2014, 8, 1));

            Assert.IsFalse(generalBet.IsResolved);
            var controller = CreateController(repository.Object, userProvider.Object, dateTimeProvider.Object);

            controller.ResolveGeneralBet(1, new ResolveGeneralBetModel()
            {
                TeamIsRight = false, PlayerIsRight = false
            });
            Assert.AreEqual(0, generalBet.PlayerPoints);
            Assert.AreEqual(0, generalBet.TeamPoints);
            Assert.IsTrue(generalBet.IsResolved);
            repository.Verify(item => item.Save());
        }
예제 #2
0
 public GeneralBetViewModel(GeneralBet bet)
 {
     GeneralBetId       = bet.GeneralBetId;
     WinningTeamId      = bet.WinningTeamId;
     GoldenBootPlayerId = bet.GoldBootPlayerId;
     IsResolved         = bet.IsResolved;
     if (IsResolved)
     {
         Points = bet.PlayerPoints.Value + bet.TeamPoints.Value;
     }
     CloseTime = TournamentTimesUtils.GeneralBetsCloseTime;
     OwnerName = string.Format("{0} {1}", bet.User.FirstName, bet.User.LastName);
     IsClosed  = DateTime.UtcNow > CloseTime;
 }
예제 #3
0
        public NewGeneralBetModel PostBet(NewGeneralBetModel newBet)
        {
            Validate();
            var generalBet = new GeneralBet();

            generalBet.User           = new MundialitoUser();
            generalBet.User.Id        = userProivider.UserId;
            generalBet.WinningTeamId  = newBet.WinningTeamId;
            generalBet.GoldBootPlayer = newBet.GoldenBootPlayer;
            var res = generalBetsRepository.InsertGeneralBet(generalBet);

            Trace.TraceInformation("Posting new General Bet: {0}", generalBet);
            generalBetsRepository.Save();
            newBet.GeneralBetId = res.GeneralBetId;
            AddLog(ActionType.CREATE, String.Format("Posting new Generel Bet: {0}", res));
            return(newBet);
        }
예제 #4
0
        public UpdateGenralBetModel UpdateBet(int id, UpdateGenralBetModel bet)
        {
            if (dateTimeProvider.UTCNow > TournamentTimesUtils.GeneralBetsCloseTime)
            {
                throw new ArgumentException("General bets are already closed for betting");
            }
            var betToUpdate = new GeneralBet();

            betToUpdate.GeneralBetId   = id;
            betToUpdate.WinningTeamId  = bet.WinningTeamId;
            betToUpdate.GoldBootPlayer = bet.GoldenBootPlayer;
            betToUpdate.User           = new MundialitoUser();
            betToUpdate.User.Id        = userProivider.UserId;
            generalBetsRepository.UpdateGeneralBet(betToUpdate);
            generalBetsRepository.Save();
            Trace.TraceInformation("Updating General Bet: {0}", betToUpdate);
            AddLog(ActionType.UPDATE, String.Format("Updating new Generel Bet: {0}", betToUpdate));
            return(bet);
        }
        public void ResolveNotClosedGeneralBetsTest()
        {
            var dateTimeProvider = new Mock <IDateTimeProvider>();
            var repository       = new Mock <IGeneralBetsRepository>();
            var userProvider     = new Mock <ILoggedUserProvider>();
            var generalBet       = new GeneralBet()
            {
                GeneralBetId = 1, WinningTeamId = 1, User = new MundialitoUser()
                {
                    FirstName = "A", LastName = "B"
                }
            };

            repository.Setup(rep => rep.GetGeneralBet(1)).Returns(generalBet);
            dateTimeProvider.Setup(item => item.UTCNow).Returns(new DateTime(2014, 6, 1));

            Assert.IsFalse(generalBet.IsResolved);
            var controller = CreateController(repository.Object, userProvider.Object, dateTimeProvider.Object);

            controller.ResolveGeneralBet(1, new ResolveGeneralBetModel()
            {
                TeamIsRight = false, PlayerIsRight = false
            });
        }