Exemple #1
0
		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;
		}
Exemple #2
0
        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);
        }