public async Task<ActionResult> GenerateTestData() { #if DEBUG var userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); var users = new List<User>(); // add users for (var i = 1; i <= 75; i++) { var email = string.Format("test.user.{0}@mail.com", i); var user = new User { UserName = email, Email = email, FirstName = "Test" + i, LastName = "User" }; var result = await userManager.CreateAsync(user, "Password01!"); if (result.Succeeded) { var currentUser = userManager.FindByEmail(user.Email); var roleresult = userManager.AddToRole(currentUser.Id, "User"); users.Add(currentUser); } } for (var week = 1; week <= 3; week++) { // get week schedules var schedules = ScheduleViewModel.GetList(week); var rnd = new Random(); // add the picks for each user for week 1 foreach (var user in users) { foreach (var schedule in schedules) { var pick = new PickViewModel { User = UserListViewModel.FromUser(user), Schedule = schedule, PickHomeTeam = (rnd.Next(0, 100) > 50), CombinedScore = (schedule.RequireScore ? rnd.Next(3, 50) : 0) }; pick.Save(); } } } #endif return null; }
public ActionResult Pick(PickViewModel model, bool? isMaster) { #region validation if (!User.IsInRole("Admin")) { isMaster = null; } var userId = (isMaster.GetValueOrDefault(false) ? Guid.Empty.ToString() : User.Identity.GetUserId()); if (model == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Invalid pick"); } if (model.Schedule == null || model.Schedule.Id <= 0) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Invalid schedule Id"); } var schedule = ScheduleViewModel.Get(model.Schedule.Id); if (schedule == null) { return new HttpStatusCodeResult(HttpStatusCode.NotFound, "Schedule not found"); } if (!schedule.IsPickable && !isMaster.GetValueOrDefault(false) || schedule.Week > SchedulesDb.GetCurrentWeek()) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Game is not pickable"); } if (!schedule.RequireScore) { // if game doesn't require a score, zero out the score model.CombinedScore = 0; } #endregion // load pick if already exists var pick = PickViewModel.GetForSchedule(userId, model.Schedule.Id); if (pick == null) { pick = new PickViewModel { User = new UserListViewModel { Id = userId }, Schedule = new ScheduleViewModel { Id = model.Schedule.Id } }; } if (model.PickHomeTeam.HasValue) { pick.PickHomeTeam = model.PickHomeTeam; } if (model.CombinedScore.HasValue) { pick.CombinedScore = model.CombinedScore; } pick.Save(); return Json(pick.Id); }