Пример #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;
		}
Пример #2
0
		public async Task<ActionResult> Register(RegisterViewModel model)
		{
			if (ModelState.IsValid)
			{
				// get default gravatar image url
				var imageUrl = string.Format("http://www.gravatar.com/avatar/{0}?r=pg", GetEmailHash(model.Email.Trim().ToLower()));

				var user = new User { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, ImageUrl = imageUrl };
				var result = await UserManager.CreateAsync(user, model.Password);
				if (result.Succeeded)
				{
					var currentUser = UserManager.FindByEmail(user.Email);

					var roleresult = UserManager.AddToRole(currentUser.Id, "Guest");

					await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);

					// For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
					// Send an email with this link
					// string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
					// var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
					// await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

					return RedirectToAction("Index", "Home");
				}
				AddErrors(result);
			}

			// If we got this far, something failed, redisplay form
			return View(model);
		}
Пример #3
0
        public static UserListViewModel FromUser(User user, IDbSet<IdentityRole> roles = null)
        {
            var role = string.Empty;
            if (roles != null)
            {
                // find the role names
                foreach (var userRole in user.Roles)
                {
                    if (role.Length > 0)
                        role += ",";
                    role += roles.First(r => r.Id == userRole.RoleId).Name;
                }
            }

            return new UserListViewModel()
            {
                Id = user.Id,
                Email = user.Email,
                FirstName = user.FirstName,
                LastName = user.LastName,
                ImageUrl = user.ImageUrl,
                Role = role
            };
        }