Пример #1
0
        public async Task <IActionResult> ConfirmEmail(string userId, string token)
        {
            if (string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(token))
            {
                return(NotFound());
            }

            var user = await _userHelper.GetUserByIdAsync(userId);

            if (user == null)
            {
                return(NotFound());
            }

            var result = await _userHelper.ConfirmEmailAsync(user, token);

            if (!result.Succeeded)
            {
                return(NotFound());
            }

            var isInRole = await _userHelper.IsUserInRoleAsync(user, "Customer");

            if (!isInRole)
            {
                await _userHelper.AddUSerToRoleAsync(user, "Customer");
            }

            var owner = new Owner
            {
                Appointments = new List <Appointment>(),
                Pets         = new List <Pet>(),
                User         = user,
                CreatedBy    = user,
                ModifiedBy   = user,
                CreateDate   = DateTime.Now,
                UpdateDate   = DateTime.Now
            };

            await _ownerRepository.CreateAsync(owner);

            return(View());
        }
Пример #2
0
        public async Task <IActionResult> Create(RegisterNewViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new User
                {
                    Address     = model.Address,
                    Email       = model.UserName,
                    FirstName   = model.FirstName,
                    LastName    = model.LastName,
                    PhoneNumber = model.PhoneNumber,
                    UserName    = model.UserName
                };

                var response = await _userHelper.AddUserAsync(user, model.Password);

                if (response.Succeeded)
                {
                    var userInDB = await _userHelper.GetUserByEmailAsync(model.UserName);

                    await _userHelper.AddUSerToRoleAsync(userInDB, "Customer");

                    var creator = await _userHelper.GetUserByEmailAsync(User.Identity.Name);

                    var owner = new Owner
                    {
                        Appointments = new List <Appointment>(),
                        Pets         = new List <Pet>(),
                        User         = userInDB,
                        CreatedBy    = creator,
                        ModifiedBy   = creator,
                        CreateDate   = DateTime.Now,
                        UpdateDate   = DateTime.Now
                    };

                    await _ownerRepository.CreateAsync(owner);

                    try
                    {
                        var myToken = await _userHelper.GenerateEmailConfirmationTokenAsync(userInDB);

                        var tokenLink = Url.Action("ConfirmEmail", "Account", new
                        {
                            userid = userInDB.Id,
                            token  = myToken
                        }, protocol: HttpContext.Request.Scheme);

                        _mailHelper.SendMail(model.UserName, "Email confirmation", $"<h1>Email Confirmation</h1>" +
                                             $"To allow the user, " +
                                             $"please click in this link:</br></br><a href = \"{tokenLink}\">Confirm Email</a>");

                        return(RedirectToAction(nameof(Index)));
                    }
                    catch (Exception ex)
                    {
                        ModelState.AddModelError(string.Empty, ex.ToString());
                        return(View(model));
                    }
                }

                ModelState.AddModelError(string.Empty, response.Errors.FirstOrDefault().Description);
            }

            return(View(model));
        }
Пример #3
0
 public async Task <bool> CreateOwnerAsync(OwnerModel ownerModel)
 {
     return(await _ownerRepository.CreateAsync(ownerModel));
 }