public async Task <(Result Result, string UserId)> CreateUserAsync(string userName, string password)
        {
            var user = new DoctrinaUser
            {
                UserName = userName,
                Email    = userName,
            };

            var result = await _userManager.CreateAsync(user, password);

            return(result.ToApplicationResult(), user.Id);
        }
        public async Task <IActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFileName = null;
                string filePath       = null;

                if (model.Photo != null)
                {
                    string uploadsFolder = Path.Combine(_hostingEnvironment.WebRootPath, "DynamicResources/images/UserProfilePictures");
                    uniqueFileName = Guid.NewGuid().ToString() + "_" + model.Photo.FileName;
                    filePath       = Path.Combine(uploadsFolder, uniqueFileName);
                    using (FileStream fs = new FileStream(filePath, FileMode.Create))
                    {
                        model.Photo.CopyTo(fs);
                    }
                }

                DoctrinaUser newUser = new DoctrinaUser
                {
                    FirstName = model.FirstName,
                    LastName  = model.LastName,
                    UserName  = model.UserName,
                    Email     = model.Email,
                    Country   = model.Country,
                    City      = model.City,
                    PhotoPath = "~/DynamicResources/images/UserProfilePictures/" + uniqueFileName
                };

                var result = await _userManager.CreateAsync(newUser, model.Password);

                if (result.Succeeded)
                {
                    await _signInManager.SignInAsync(newUser, isPersistent : false);

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }

            return(View(model));
        }
Пример #3
0
        public async Task <IActionResult> Index(string userName)
        {
            DoctrinaUser user = await _userManager.FindByNameAsync(userName);

            return(View(user));
        }
        public async Task <Result> DeleteUserAsync(DoctrinaUser user)
        {
            var result = await _userManager.DeleteAsync(user);

            return(result.ToApplicationResult());
        }