public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser() { UserName = model.UserName }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { await SignInAsync(user, isPersistent : false); using (var context = new RsbContext()) { var id = User.Identity.GetUserId(); context.Users.Add(new User { UserId = new Guid(user.Id), Name = model.UserName, CurrentScore = 0 }); context.SaveChanges(); } return(RedirectToAction("Index", "Home")); } else { AddErrors(result); } } // If we got this far, something failed, redisplay form return(View(model)); }
public bool GetLeagueLeave(Guid userId, Guid leagueId) { using (var context = new RsbContext()) { var league = context.Leagues.Single(o => o.Id == leagueId); league.Users.RemoveAll(o => o.UserId == userId); context.SaveChanges(); return(true); } }
public bool GetLeagueJoin(Guid userId, string code) { using (var context = new RsbContext()) { var league = context.Leagues.SingleOrDefault(o => o.Code == code); if (league == null) { return(false); } league.Users.Add(context.Users.Single(o => o.UserId == userId)); context.SaveChanges(); return(true); } }
public bool GetLeagueCreate(Guid userId, string name) { using (var context = new RsbContext()) { var code = new Random().Next(0, 9999).ToString(); // TODO: Generate code util var league = new League { Code = code, Name = name, Users = new List <User>(), Id = Guid.NewGuid() }; league.Users.Add(context.Users.Single(o => o.UserId == userId)); context.Leagues.Add(league); context.SaveChanges(); return(true); } }
public bool GetStar(Guid weekId, Guid bakerId) { using (var context = new RsbContext()) { var week = context.Weeks.SingleOrDefault(o => o.Id == weekId); var starBaker = context.Bakers.Single(o => o.Id == bakerId); if (week != null && starBaker != null) { week.StarBaker = starBaker; context.SaveChanges(); return(true); } return(false); } }
private void ScoreWeek(RsbContext context, Week week) { var users = context.Users.Include("Predictions"); foreach (var user in users) { var currentScore = user.CurrentScore; var newScore = user.CurrentScore; var weekPrediction = user.Predictions.SingleOrDefault(o => o.WeekId == week.Id); if (weekPrediction == null) { break; } if (week.ExitBaker.Id == weekPrediction.ExitBakerId) { newScore++; } if (week.ExitBaker.Id == weekPrediction.StarBakerId) { newScore--; } if (week.StarBaker.Id == weekPrediction.StarBakerId) { newScore++; } if (week.StarBaker.Id == weekPrediction.ExitBakerId) { newScore--; } if (user.PreviousScores == null) { user.PreviousScores = new List <int>(); } user.PreviousScores.Add(currentScore); user.CurrentScore = newScore; } week.Scored = true; context.SaveChanges(); }
public bool GetExit(Guid userId, Guid weekId, Guid bakerId) { using (var context = new RsbContext()) { var week = context.Weeks.SingleOrDefault(o => o.Id == weekId); if (week == null || week.EndDateTime < DateTime.UtcNow) { return(false); } var user = context.Users.Include("Predictions").Single(o => o.UserId == userId); var pred = user.Predictions.SingleOrDefault(o => o.WeekId == weekId); if (pred == null) { pred = new Prediction { ExitBakerId = bakerId, PredictionId = Guid.NewGuid(), WeekId = weekId }; user.Predictions.Add(pred); } else { pred.ExitBakerId = bakerId; if (pred.ExitBakerId == pred.StarBakerId) { pred.StarBakerId = Guid.Empty; } } context.SaveChanges(); return(true); } }