Beispiel #1
0
        public Task <TUser> FindByEmailAsync(string email)
        {
            TUser us = null;

            if (user == null)
            {
                us   = (TUser)_cosmosIdentityManage.FindUserByEmail(email);
                user = us;
                if (user == null)
                {
                    return(Task.FromResult <TUser>(us));
                }
                return(Task.FromResult <TUser>(user));
            }
            else if (user.Email != email)
            {
                user = (TUser)_cosmosIdentityManage.FindUserByEmail(email);
            }
            return(Task.FromResult <TUser>(user));
        }
Beispiel #2
0
        public async Task <ActionResult> CreateAccount(Models.Access.CreateAccountViewModel m)
        {
            try {
                if (ModelState.IsValid)
                {
                    if (m.AgreeTerms)
                    {
                        int rolIdSelected = Convert.ToInt32(_cosmosIdentityManage.GetRoles().SingleOrDefault(r => r.Name == m.Role).Id);
                        var user          = new ApplicationUser {
                            Name = m.Name, UserName = m.Email, Email = m.Email, Hometown = string.Empty, TokenAddress = string.Empty, WalletAddress = string.Empty, IsPremium = false, LastRolId = rolIdSelected
                        };
                        var result = await UserManager.CreateAsync(user, m.Password);

                        if (result.Succeeded)
                        {
                            //var userRegister = UserManager.FindByEmail(user.Email);
                            var userRegister = _cosmosIdentityManage.FindUserByEmail(user.Email);
                            UserManager.AddToRole(userRegister.Id, m.Role);
                            var code = await UserManager.GenerateEmailConfirmationTokenAsync(userRegister.Id);

                            var callbackUrl = Url.Action(
                                "AccountVerified", "Access",
                                new { userId = userRegister.Id, code = code },
                                protocol: Request.Url.Scheme);
                            string mailContent = String.Format(new MailManager().GetMailContent(EMailType.createAccount), user.UserName, callbackUrl);

                            //Enqueue
                            // Creamos el objeto de notificacion
                            //Notification notification = new Notification();
                            //NotificationManager notificationManager = new NotificationManager();

                            // Enviamos la notificacion para la validacion
                            //notification.IdUser = new Guid(user.Id);
                            //notification.MailContent = mailContent;

                            // Encolamos la notificacion para que el webjob la procese
                            //notificationManager.EnqueueNewAccessUser(notification);

                            //Enviamos el mail
                            MailManager emailManager   = new MailManager();
                            MailMessage message        = new MailMessage();
                            string      messageContent = String.Format(new MailManager().GetMailContent(EMailType.createAccount), user.UserName, callbackUrl);

                            //Config
                            message.Body        = messageContent;
                            message.Destination = userRegister.Email;
                            message.Subject     = "Thanks for signing up.";


                            await emailManager.SendAsync(message);

                            _cosmosIdentityManage.SetSecondaryRoles(userRegister.Id);
                            return(View("CheckEmailActivation"));
                        }
                        AddErrors(result);
                    }
                    else
                    {
                        ModelState.AddModelError("", "You must accept terms and policy");
                    }
                }
            }
            catch (Exception e) {
                var messageException = telemetria.MakeMessageException(e, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(messageException);
            }

            return(View(m));
        }