Example #1
0
        public JsonResult GetCurrentPKInfo()
        {
            var result = new ResponseResult();

            try
            {
                var pkModel = new PKService().GetCurrentPKModel();
                var pkRates = new PKRateService().GetPKRateModels(pkModel.PK.PKId);
                var bets    = new BetService().GetBets(pkModel.PK.PKId, LoginUser.UserId);
                var rebates = new UserRebateService().GetUserRebates(LoginUser.UserId);
                result.Data = new
                {
                    PKModel = pkModel,
                    PKRates = pkRates,
                    Bets    = bets,
                    Rebates = rebates
                };
            }
            catch (Exception ex)
            {
                result.Success = false;
                result.Message = MessageConst.System_Error;
                _logger.Info(ex);
            }

            return(Json(result));
        }
Example #2
0
        public bool UpdateBet(UpdateBetModelView Updatemodel)
        {
            var    Itemrepo = new ItemService();
            string id       = Itemrepo.GetById(Updatemodel.id.Substring(Updatemodel.id.IndexOf('-') + 1)).ItemRef;

            using (var Betrepo = new BetService())
            {
                var model = Betrepo.GetById(Updatemodel.id);
                try
                {
                    model.IsAccept = Updatemodel.ans;
                    if (Updatemodel.ans == 2)
                    {
                        var item = Itemrepo.GetById(id);
                        item.status = "Sold";
                        Itemrepo.Update(item);
                    }
                    Betrepo.Update(model);
                    return(true);
                }
                catch
                {
                    return(false);
                }
            }
        }
        public void Initialize()
        {
            _bet = ObjectMother.ValidBetWithContest();

            _mockBetRepository = new Mock <IBetRepository>();
            _betService        = new BetService(_mockBetRepository.Object);
        }
 public void CantUpdateMissingBet()
 {
     Assert.Null(BetService.UpdateBet(new Bet()
     {
         Id = Guid.NewGuid().ToString()
     }));
 }
Example #5
0
        public void Run()
        {
            var pkService    = new PKService();
            var bonusService = new PKBonusService();
            var betService   = new BetService();

            var pks = pkService.GetNotBonusPKs();

            foreach (var pk in pks)
            {
                if (pk != null && !string.IsNullOrEmpty(pk.Ranks))
                {
                    // 生成奖金
                    if (!pk.IsBonused)
                    {
                        // 更新 奖金生成标志, 防止多次计算
                        pkService.UpdateIsBonused(pk.PKId, true);
                        // 生成奖金
                        bonusService.GenerateBonus(pk);

                        var msg = string.Format("Generate Bonus - PKId : {0} - Time : {1}", pk.PKId, DateTime.Now.ToString(DateFormatConst.yMd_Hms));
                        _logger.Info(msg);
                    }
                }
            }

            // 更新Bet表已结算标志
            betService.UpdateSettlementDone();
        }
Example #6
0
        public ActionResult GetThrowModels([DataSourceRequest] DataSourceRequest req, int id)
        {
            var result = new List <ThrowModel>();

            result = new BetService().GetThrowModels(id);
            return(Json(result.ToDataSourceResult(req)));
        }
Example #7
0
        public IHttpActionResult GetById(int id)
        {
            BetService betService = CreateBetService();
            var        bet        = betService.GetBetById(id);

            return(Ok(bet));
        }
Example #8
0
        private BetService CreateBetService()
        {
            var userId     = Guid.Parse(User.Identity.GetUserId());
            var betService = new BetService(userId);

            return(betService);
        }
Example #9
0
        public ActionResult GetBetParticipants(int betID)
        {
            var result = new List <ParticipantModel>();

            result = new BetService().GetBetParticipantModels(betID);
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Example #10
0
        public void UpdateRead(string itemref)
        {
            var Betrepo = new BetService();
            var item    = Betrepo.GetById(itemref);

            item.IsRead = true;
            Betrepo.Update(item);
        }
Example #11
0
        public IHttpActionResult Get() //Get([FromBody] int playerId)
        {
            //var bets = _service.PlayerGetBets();
            BetService betService = CreateBetService();
            var        bets       = betService.PlayerGetBets();

            return(Ok(bets));
        }
Example #12
0
        public void PrepareBetGroup_WithMissingGroupId_ShoudReturnNull()
        {
            var service = new BetService(this.dbContext, null);

            var result = service.PrepareBetGroup(1);

            Assert.IsNull(result);
        }
Example #13
0
        public async Task AddBetGroup_WithNoTeams_AddsNothing()
        {
            var service = new BetService(this.dbContext, null);

            var result = await service.AddBetGroupAsync(null, new BetGroupBindingModel());

            var betsCount = this.dbContext.BetsForPosition.Count();

            Assert.AreEqual(0, betsCount);
        }
Example #14
0
        public EventServiceTests()
        {
            var eventRepo  = new EventRepository();
            var marketRepo = new MarketRepository();
            var betRepo    = new BetRepository();

            var betService = new BetService(betRepo, eventRepo, marketRepo);

            EventService = new EventService(eventRepo, new MarketService(marketRepo, betService));
        }
        protected void Init()
        {
            context      = new TestContext();
            betService   = new BetService(context);
            userService  = new UserService(context);
            teamService  = new TeamService(context);
            eventService = new EventService(context);

            AddUser();
            AddTeam();
            AddEvent();
        }
        public void CanCreateBet()
        {
            var mockEvent  = Common.CreateAndSaveMockEvent(EventController);
            var mockMarket = Common.CreateAndSaveMockMarket(mockEvent.Id, "Market Desc", 0.5m, MarketController);

            var newBet = BetService.CreateBet(new Bet()
            {
                BetAmount = 100, MarketId = mockMarket.Id
            });

            Assert.NotNull(newBet.Id);
        }
 public String PlaceBet(BetDTO bet)
 {
     try
     {
         BetService.PlaceBet(bet);
         return("Success");
     }
     catch (Exception ex)
     {
         return("ERROR: " + ex.Message);
     }
 }
        public void CanGetSpecificBet()
        {
            var mockEvent  = Common.CreateAndSaveMockEvent(EventController);
            var mockMarket = Common.CreateAndSaveMockMarket(mockEvent.Id, "Market Desc", 0.5m, MarketController);


            var newBet = BetService.CreateBet(new Bet()
            {
                BetAmount = 123, MarketId = mockMarket.Id
            });

            Assert.Equal(BetService.GetById(newBet.Id).BetAmount, newBet.BetAmount);
        }
        public MarketTests()
        {
            var betRepo       = new BetRepository();
            var marketRepo    = new MarketRepository();
            var eventRepo     = new EventRepository();
            var betService    = new BetService(betRepo, eventRepo, marketRepo);
            var marketService = new MarketService(marketRepo, betService);
            var eventService  = new EventService(eventRepo, marketService);

            MarketController = new MarketController(marketService);
            EventController  = new EventController(eventService);
            BetController    = new BetController(betService);
        }
Example #20
0
        public void PrepareBetGroup_WithExistingGroupId_ShoudReturnModel()
        {
            var group = new Group();

            this.dbContext.Groups.Add(group);
            this.dbContext.SaveChanges();

            var service = new BetService(this.dbContext, null);

            var result = service.PrepareBetGroup(group.Id);

            Assert.IsNotNull(result);
        }
Example #21
0
        public ActionResult SaveBetGridModel([DataSourceRequest] DataSourceRequest req, BetGridModel model)
        {
            var result = model;

            try
            {
                result = new BetService().SaveBetGridModel(model);
            }
            catch (Exception e)
            {
                ModelState.AddModelError("Error", e.Message);
            }
            return(Json(new[] { result }.ToDataSourceResult(req)));
        }
Example #22
0
        /// <summary>
        /// 按wechat单号生成奖金+退水
        /// </summary>
        /// <param name="orderNo"></param>
        /// <returns></returns>
        public decimal GetBonusAndRebateAmount(long orderNo)
        {
            var rebateAmount = 0M;  //退水
            var bonusAmount  = 0M;  //奖金

            var dbBetItems = new BetItemService().GetBetItemsByOrderNo(orderNo);

            // 计算退水
            var userIds     = dbBetItems.Select(bi => bi.Bet.UserId).Distinct().ToList();
            var users       = new UserService().GetUsers(userIds);
            var userRebates = new UserRebateService().GetUserRebates(userIds);

            foreach (var userId in userIds)
            {
                var user = users.Where(u => u.UserId == userId).First();

                var userBetItems = dbBetItems.Where(bi => bi.Bet.UserId == userId).ToList();
                foreach (var userBetItem in userBetItems)
                {
                    var userRebate = userRebates.Where(e => e.UserId == userId && e.RebateNo == userBetItem.Num).FirstOrDefault();
                    if (userRebate != null)
                    {
                        var rebate = UserRebateService.GetDefaultRebate(userRebate, user.DefaultRebateType);

                        rebateAmount += Math.Round(userBetItem.Amount * rebate, 4);
                    }
                }
            }

            // 计算奖金
            var betService = new BetService();
            var pkIds      = dbBetItems.Select(bi => bi.Bet.PKId).Distinct().ToList();
            var pks        = new PKService().GetPKs(pkIds);
            var dbPKRates  = new PKRateService().GetPKRates(pkIds);

            foreach (var pk in pks)
            {
                var bets = betService.ConvertRanksToBets(pk.Ranks);
                foreach (var bet in bets)
                {
                    var pkRate = dbPKRates.Where(r => r.PKId == pk.PKId && r.Rank == bet.Rank && r.Num == bet.Num).First();

                    var betAmount = dbBetItems.Where(bi => bi.Bet.PKId == pk.PKId && bi.Rank == bet.Rank && bi.Num == bet.Num).Sum(bi => (decimal?)bi.Amount ?? 0);

                    bonusAmount += Math.Round(betAmount * pkRate.Rate, 4);
                }
            }

            return(rebateAmount + bonusAmount);
        }
        public void CanUpdateExistingBet()
        {
            var mockEvent  = Common.CreateAndSaveMockEvent(EventController);
            var mockMarket = Common.CreateAndSaveMockMarket(mockEvent.Id, "Market Desc", 0.5m, MarketController);

            var createdBet = BetService.CreateBet(new Bet()
            {
                BetAmount = 123, MarketId = mockMarket.Id
            });

            createdBet.BetAmount = 234;
            BetService.UpdateBet(createdBet);

            Assert.Equal(234, BetService.GetById(createdBet.Id).BetAmount);
        }
Example #24
0
        public ActionResult DeleteParticipant([DataSourceRequest] DataSourceRequest req, ParticipantModel model)
        {
            var result = model;

            try
            {
                result = new BetService().DeleteParticipantModel(model);
            }
            catch (Exception e)
            {
                ModelState.AddModelError("Error", e.Message);
            }

            return(Json(new[] { result }.ToDataSourceResult(req, ModelState)));
        }
        public void MakeBetEntity_Should_BeCalledOnce_WhenTheCorrectRepositoryIsPassed()
        {
            var betRepositoryMock = MockRepository.GenerateMock <IBetRepository>();

            //Arrange
            betRepositoryMock.Expect(dao => dao.MakeBetEntity(Arg <string> .Is.Anything, Arg <int> .Is.Anything)).Repeat.Once();;

            var betService = new BetService(betRepositoryMock);

            //Act
            betService.MakeBetEntity("1", 1);

            //Assert
            betRepositoryMock.VerifyAllExpectations();
        }
Example #26
0
        public void GetAllUserBets_Should_BeCalledOnce_WhenTheCorrectRepositoryIsPassed()
        {
            //Arrange
            var betRepositoryMock = MockRepository.GenerateMock <IBetRepository>();

            betRepositoryMock.Expect(dao => dao.GetAllUserBets(Arg <Guid> .Is.Anything)).Return(Arg <IEnumerable <Bet> > .Is.Anything).Repeat.Once();

            var unitOfWorkMockMock = MockRepository.GenerateStub <IUnitOfWork>();

            unitOfWorkMockMock.Stub(uow => uow.BetRepository).Return(betRepositoryMock);

            var betService = new BetService(unitOfWorkMockMock);

            //Act
            betService.GetAllUserBets(default);
        public void GetAllUserBets_Should_BeCalledOnce_WhenTheCorrectRepositoryIsPassed()
        {
            var betRepositoryMock = MockRepository.GenerateMock <IBetRepository>();

            //Arrange
            betRepositoryMock.Expect(dao => dao.GetAllUserBets(Arg <string> .Is.Anything)).Return(Arg <IEnumerable <Bet> > .Is.Anything).Repeat.Once();;

            var betService = new BetService(betRepositoryMock);

            //Act
            betService.GetAllUserBets("1");

            //Assert
            betRepositoryMock.VerifyAllExpectations();
        }
Example #28
0
        public async Task BetService_GetByIdWithDetails_ReturnsProperBet()
        {
            var expected       = GetTestBetsModels().First();
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(m => m.BetRepository.GetByIdWithDetailsAsync(It.IsAny <int>()))
            .ReturnsAsync(GetTestBets().First());
            var betService = new BetService(mockUnitOfWork.Object, UnitTestHelper.CreateMapperProfile());

            var actual = await betService.GetByIdAsync(expected.Id);

            Assert.AreEqual(expected.Id, actual.Id);
            Assert.AreEqual(expected.Sum, actual.Sum);
            Assert.AreEqual(expected.BetDate.Date, actual.BetDate.Date);
        }
Example #29
0
        public async Task BetService_DeleteByIdAsync_DeletesBet()
        {
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(m => m.BetRepository.DeleteByIdAsync(It.IsAny <int>()));
            var betService = new BetService(mockUnitOfWork.Object, UnitTestHelper.CreateMapperProfile());
            var id         = 1;

            var result = await betService.DeleteByIdAsync(id);

            Assert.IsTrue(result.Succedeed);
            mockUnitOfWork.Verify(
                m => m.BetRepository.DeleteByIdAsync(id), Times.Once);
            mockUnitOfWork.Verify(
                m => m.SaveAsync(),
                Times.Once);
        }
Example #30
0
        public void GetAllBets()
        {
            //initiallizing
            var unitOfWork = new Mock <IUnitOfWork>();
            var finder     = new Mock <IBetFinder>();
            var collection = new Mock <IRepository <Bet> >();

            var service = new BetService(unitOfWork.Object, finder.Object, collection.Object);

            //act
            finder.Setup(x => x.FindAllBets())
            .Returns(new List <Bet>());

            service.GetAllBets();

            //assert
            finder.Verify(x => x.FindAllBets());
        }