Esempio n. 1
0
        public async Task <IActionResult> ResendActivationLink(string userID, string email)
        {
            const string view           = "/Views/ActivateAccount/Index.cshtml";
            var          ActivationLink = WordPressPasswordUtil.GetActivationLink(Convert.ToString(userID), email);
            var          template       = await _renderer.RenderViewToStringAsync <Models.ActivateAccountViewModel>(view, new Models.ActivateAccountViewModel()
            {
                URL = ActivationLink
            });;

            return(Ok(await accountService.ResendActivationLink(userID, email, template)));
        }
Esempio n. 2
0
        public async Task <object> RegisterAsync(Register register)
        {
            var users = await unitOfWork.UserRepository.Find(u => u.UserEmail.Equals(register.Email));

            if (users.ToList().Count > 0)
            {
                return(new
                {
                    Status = false,
                    Message = "User with given email already exists"
                });
            }
            else
            {
                await unitOfWork.UserRepository.Add(new WpUsers()
                {
                    DisplayName       = $"{register.FirstName} {register.LastName}",
                    UserEmail         = register.Email,
                    UserStatus        = 1,
                    UserPass          = Crypter.Phpass.Crypt(register.Password),
                    UserLogin         = register.Email,
                    UserNicename      = register.Email.Replace('.', '-'),
                    UserRegistered    = DateTime.Now,
                    UserActivationKey = string.Empty,
                    UserUrl           = string.Empty
                });

                var user = await unitOfWork.UserRepository.Single(u => u.UserEmail.Equals(register.Email));

                var usersMeta = await unitOfWork.UsersMetaRepository.Find(u => u.MetaKey == "wpforms-pending" && u.UserId == user.Id);

                if (usersMeta.ToList().Count > 0)

                {
                    var userMeta = usersMeta.Single();
                    userMeta.MetaValue = "0";
                }
                else
                {
                    await unitOfWork.UsersMetaRepository.Add(new WpUsermeta()
                    {
                        UserId    = user.Id,
                        MetaKey   = "wpforms-pending",
                        MetaValue = "1"
                    });
                }
                await unitOfWork.UsersMetaRepository.Add(new WpUsermeta()
                {
                    UserId    = user.Id,
                    MetaKey   = "first_name",
                    MetaValue = register.FirstName
                });

                await unitOfWork.UsersMetaRepository.Add(new WpUsermeta()
                {
                    UserId    = user.Id,
                    MetaKey   = "last_name",
                    MetaValue = register.LastName
                });

                await unitOfWork.UsersMetaRepository.Add(new WpUsermeta()
                {
                    UserId    = user.Id,
                    MetaKey   = "nickname",
                    MetaValue = user.DisplayName
                });

                await unitOfWork.UsersMetaRepository.Add(new WpUsermeta()
                {
                    UserId    = user.Id,
                    MetaKey   = "billing_first_name",
                    MetaValue = register.FirstName
                });

                await unitOfWork.UsersMetaRepository.Add(new WpUsermeta()
                {
                    UserId    = user.Id,
                    MetaKey   = "billing_last_name",
                    MetaValue = register.LastName
                });

                await unitOfWork.UsersMetaRepository.Add(new WpUsermeta()
                {
                    UserId    = user.Id,
                    MetaKey   = "shipping_first_name",
                    MetaValue = register.FirstName
                });

                await unitOfWork.UsersMetaRepository.Add(new WpUsermeta()
                {
                    UserId    = user.Id,
                    MetaKey   = "shipping_last_name",
                    MetaValue = register.LastName
                });

                await unitOfWork.UsersMetaRepository.Add(new WpUsermeta()
                {
                    UserId    = user.Id,
                    MetaKey   = "billing_phone",
                    MetaValue = register.PhoneNumber
                });

                await unitOfWork.UsersMetaRepository.Add(new WpUsermeta()
                {
                    UserId    = user.Id,
                    MetaKey   = "billing_email",
                    MetaValue = register.Email
                });

                await unitOfWork.UsersMetaRepository.Add(new WpUsermeta()
                {
                    UserId    = user.Id,
                    MetaKey   = "wpforms-confirmation",
                    MetaValue = "639"
                });

                await unitOfWork.SaveChangesAsync();

                //var referalDetails = context.WpUserReferalDetails.Where(r => r.ReferalCode == register.ReferalCode).SingleOrDefault();
                //if (referalDetails != null)
                //{
                //    context.WpUserreferalsMappings.Add(new WpUserreferalsMappings() { });
                //}
                var ActivationLink = WordPressPasswordUtil.GetActivationLink(Convert.ToString(user.Id), user.UserEmail);
                //EmailHelper.Send(ActivationLink);

                EmailHelper email = new EmailHelper("*****@*****.**", register.Email, "[Grocedy] Your username and password info (Activation Required)", $"IMPORTANT: You must activate your account before you can login. Please visit the link below. {ActivationLink}");
                if (email.SendElastic())
                {
                    return(new
                    {
                        Status = true,
                        Message = "Registration Success",
                        UserID = user.Id,
                        UserDetails = GetUserDetails(Convert.ToString(user.Id), user),
                    });
                }
                else
                {
                    return(new
                    {
                        Status = true,
                        Message = "Registration Success , but failed to sent Activation Link .",
                        UserID = user.Id,
                        UserDetails = GetUserDetails(Convert.ToString(user.Id), user),
                    });
                }
            }
        }