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)); }
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")); }
public ActionResult Index() { List <Customer> customers = GetCustomers(); customers.ForEach(c => c.ComputeUnSettledBetsStatus()); BetsViewModel betsViewModel = MapBetsViewModel(customers); return(View(betsViewModel)); }
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)); }
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")); }
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); }
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")); }
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)); }
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"); }