コード例 #1
0
        public ActionResult EditRate(int rateId, int eventId)
        {
            var bets      = _businessLayer.GetBets(rateId);
            var betsmodel = new List <BetViewModel>();

            for (int i = 0; i < bets.Count; i++)
            {
                var model = new BetViewModel()
                {
                    Bet = bets[i]
                };
                if (bets[i].ResultType == "Score")
                {
                    var score = bets[i].ResultValue.Split(':');
                    model.Score1 = int.Parse(score[0]);
                    model.Score2 = int.Parse(score[1]);
                }
                betsmodel.Add(model);
            }
            var           sportEvent = _businessLayer.GetSportEvent(eventId);
            BetsViewModel viewModel  = new BetsViewModel()
            {
                Bets = betsmodel, SportEvent = sportEvent, RateId = rateId
            };

            return(View(viewModel));
        }
コード例 #2
0
        public ActionResult MakeBet(BetsViewModel betsViewModel)
        {
            int money = 0;

            foreach (var bet in betsViewModel.Bets)
            {
                money += bet.Bet.Money;
            }

            var userId = User.Identity.GetUserId();

            _businessLayer.TakeUsersMoney(userId, money);

            foreach (var bet in betsViewModel.Bets.Where(b => b.Bet.ResultType == "Score"))
            {
                bet.Bet.ResultValue = bet.Score1.ToString() + ":" + bet.Score1.ToString();
            }

            var rate = new Rate()
            {
                DateTime = DateTime.Now,
                Event    = new SportEvent()
                {
                    Id = betsViewModel.SportEventId
                },
                UserId = userId
            };

            _businessLayer.SetBets(rate, betsViewModel.Bets.Select(x => x.Bet).ToList());

            return(RedirectToAction("Index", "Home"));
        }
コード例 #3
0
        public ActionResult Index()
        {
            List <Customer> customers = GetCustomers();

            customers.ForEach(c => c.ComputeUnSettledBetsStatus());

            BetsViewModel betsViewModel = MapBetsViewModel(customers);

            return(View(betsViewModel));
        }
コード例 #4
0
        public ActionResult MakeBet(int sportEventId)
        {
            User.Identity.GetUserId();
            ViewBag.Money = _businessLayer.GetUsersMoney(User.Identity.GetUserId());
            var           Event         = _businessLayer.GetSportEvent(sportEventId);
            BetsViewModel betsViewModel = new BetsViewModel()
            {
                Bets = new List <BetViewModel>()
                {
                    new BetViewModel()
                }, SportEventId = sportEventId, SportEvent = Event
            };

            return(View(betsViewModel));
        }
コード例 #5
0
        public ActionResult EditRate(BetsViewModel viewModel)
        {
            viewModel.Bets = viewModel.Bets.Where(b => b.Bet.ResultType != null).ToList();
            var oldBets        = _businessLayer.GetBets(viewModel.RateId);
            var betsIdToDelete = oldBets.Select(b => b.Id).Except(viewModel.Bets.Select(b => b.Bet.Id));

            foreach (var betId in betsIdToDelete)
            {
                _businessLayer.DeleteBet(betId);
            }
            foreach (var bet in viewModel.Bets.Where(b => b.Bet.ResultType == "Score"))
            {
                bet.Bet.ResultValue = bet.Score1.ToString() + ":" + bet.Score1.ToString();
            }
            var betsToAdd = viewModel.Bets.Where(b => b.Bet.Id == 0).Select(b => b.Bet).ToList();

            _businessLayer.AddBets(betsToAdd, viewModel.RateId);

            _businessLayer.EditBets(viewModel.Bets.Where(b => b.Bet.Id != 0).Select(b => b.Bet).ToList());
            return(RedirectToAction("MyBets"));
        }
コード例 #6
0
        private BetsViewModel MapBetsViewModel(List <Customer> customers)
        {
            var betsViewModel = new BetsViewModel();

            betsViewModel.RiskyCustomers =
                customers.Where(c => c.IsWinningAtAnUnusualRate()).OrderBy(c => c.Id)
                .Select(c => new CustomerViewModel {
                Id = c.Id
            })
                .ToList();

            foreach (Customer customer in customers.OrderBy(c => c.Id))
            {
                List <UnSettledBetViewModel> unSettledBetViewModels =
                    customer.GetHighRiskUnsettledBets().Select(ub => Mapper.Map <UnSettledBetViewModel>(ub)).ToList();
                unSettledBetViewModels.ForEach(ub => ub.CustomerId = customer.Id);
                betsViewModel.HighRiskUnsettledBets.AddRange(unSettledBetViewModels);
            }

            return(betsViewModel);
        }
コード例 #7
0
        private ActionResult BetForMatch(MatchBetInputModel model)
        {
            if (model != null && this.ModelState.IsValid)
            {
                var matchBet = Mapper.Map <UserMatchBet>(model);
                matchBet.UserId = this.User.Identity.GetUserId();
                this.Data.UserMatchBets.Add(matchBet);
                this.Data.SaveChanges();

                var userMatchBets = this.Data.UserMatchBets
                                    .All()
                                    .Where(x => x.MatchId == model.MatchId);

                var betsViewModel = new BetsViewModel
                {
                    AwayBets = userMatchBets.Sum(x => x.AwayBet),
                    HomeBets = userMatchBets.Sum(x => x.HomeBet)
                };

                return(this.Json(betsViewModel));
            }

            return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Invalid bets"));
        }
コード例 #8
0
        public ActionResult Bets(Guid id)
        {
            var bets = this.userForecastService.GetAllByIdAndPlayed(id);

            var PlayedMatches    = new List <PlayedBetModel>();
            var NotPlayedMatches = new List <NotPlayedBetModel>();

            foreach (var bet in bets)
            {
                var currentMatch = this.matchService.GetById(bet.MatchId);
                var homeTeamName = this.teamService.FindTeamNameById(currentMatch.HomeTeam);
                var awayTeamName = this.teamService.FindTeamNameById(currentMatch.AwayTeam);
                var homeTeamPic  = this.teamService.GetTeamAvatarById(currentMatch.HomeTeam);
                var awayTeamPic  = this.teamService.GetTeamAvatarById(currentMatch.AwayTeam);


                if (bet.IsOpen == true)
                {
                    NotPlayedMatches.Add(new NotPlayedBetModel()
                    {
                        AwayPic      = awayTeamPic,
                        AwayTeam     = awayTeamName,
                        HomeTeam     = homeTeamName,
                        Coeff        = bet.Coefficient,
                        Date         = currentMatch.Date,
                        Forcast      = bet.Forcast,
                        MatchId      = bet.MatchId,
                        HomePic      = homeTeamPic,
                        PlayedPoints = bet.PointsPlayed,
                        IsStarted    = DateTime.Now > currentMatch.Date,
                        ForecastId   = bet.Id
                    });
                }
                else
                {
                    PlayedMatches.Add(new PlayedBetModel()
                    {
                        awayGoals     = currentMatch.AwayGoals,
                        HomeTeam      = homeTeamName,
                        Date          = currentMatch.Date,
                        AwayPic       = awayTeamPic,
                        AwayTeam      = awayTeamName,
                        Coeff         = bet.Coefficient,
                        Forcast       = bet.Forcast,
                        homeGoals     = currentMatch.HomeGoals,
                        HomePic       = homeTeamPic,
                        IsSuccessFull = bet.IsSuccess,
                        PlayedPoints  = bet.PointsPlayed,
                    });
                }
            }

            var model = new BetsViewModel()
            {
                NotPlayedMatches = NotPlayedMatches,
                PlayedMatches    = PlayedMatches,
                UserId           = id
            };

            return(this.View(model));
        }
コード例 #9
0
        private ActionResult BetForMatch(MatchBetInputModel model)
        {
            if (model != null && this.ModelState.IsValid)
            {
                var matchBet = Mapper.Map<UserMatchBet>(model);
                matchBet.UserId = this.User.Identity.GetUserId();
                this.Data.UserMatchBets.Add(matchBet);
                this.Data.SaveChanges();

                var userMatchBets = this.Data.UserMatchBets
                    .All()
                    .Where(x => x.MatchId == model.MatchId);

                var betsViewModel = new BetsViewModel
                {
                    AwayBets = userMatchBets.Sum(x => x.AwayBet),
                    HomeBets = userMatchBets.Sum(x => x.HomeBet)
                };

                return this.Json(betsViewModel);
            }

            return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Invalid bets");
        }