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