Example #1
0
        public async Task <IActionResult> Register(AccountRegisterModelView model)
        {
            if (model.Avatar is null)
            {
                ModelState.AddModelError("", "Вы должны иметь аватар");
            }
            else if (ModelState.IsValid)
            {
                User user = new User
                {
                    Email          = model.Email,
                    UserName       = model.Nickname,
                    NameSurname    = model.NameSurname,
                    Description    = model.Description,
                    PhoneNumber    = model.PhoneNumber,
                    AvatarPath     = Load(model),
                    Publications   = new List <Publication>(),
                    SubscribesIds  = new List <string>(),
                    SubscribersIds = new List <string>(),
                    PublicationIds = new List <string>()
                };
                if (model.Male)
                {
                    user.Sex = Sex.Male;
                }
                else if (model.Female)
                {
                    user.Sex = Sex.Female;
                }
                else
                {
                    user.Sex = Sex.Empty;
                }
                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    _userService.AddUserToCache(user);
                    await _signInManager.SignInAsync(user, false);

                    await _emailService.SendEmailAsync(
                        email : user.Email,
                        subject : "Поздравляем с регистрацией!",
                        message : $"<h5>Ваши данные:</h5>{GetUserData(user)}"
                        );

                    return(RedirectToAction("Details", new { login = user.UserName }));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }
            return(View(model));
        }
Example #2
0
        private string Load(AccountRegisterModelView model)
        {
            string newUserFile = $"{model.Nickname}_{model.Email}";
            string path        = Path.Combine(_environment.ContentRootPath + $"\\wwwroot\\UserFiles\\{newUserFile}");
            string photoPath   = $"UserFiles/{newUserFile}/{model.Avatar.FileName}";

            if (!System.IO.Directory.Exists($"wwwroot/UserFiles/{newUserFile}"))
            {
                System.IO.Directory.CreateDirectory($"wwwroot/UserFiles/{newUserFile}");
            }
            _fileUpload.Upload(path, model.Avatar.FileName, model.Avatar);
            return(photoPath);
        }