示例#1
0
        public async Task <string> IsValid(PreRegisteredUser user)
        {
            await Task.Run(() =>
            {
                if (string.IsNullOrEmpty(user.UserName))
                {
                    return("User name is mandatory");
                }
                _preRegistrationRepository.DeleteAsync(x => x.UserName == user.UserName).Wait();
                _preRegistrationRepository.DeleteAsync(x => x.EmailAddress == user.EmailAddress).Wait();

                if (string.IsNullOrEmpty(user.EmailAddress))
                {
                    return("Email address is mandatory");
                }

                if (HttpContext.Current == null)
                {
                    return(null);
                }

                var userExists = UserManager.FindByNameAsync(user.UserName).Result;

                return(userExists != null ? "The user name selected is already taken" : null);
            });

            return(string.Empty);
        }
        public async Task<string> IsValid(PreRegisteredUser user)
        {
            await Task.Run(() =>
            {
                if (string.IsNullOrEmpty(user.UserName))
                    return "User name is mandatory";

                if (string.IsNullOrEmpty(user.EmailAddress))
                    return "Email address is mandatory";

                if (HttpContext.Current == null)
                    return null;

                var userExists = UserManager.FindByNameAsync(user.UserName).Result;

                return userExists != null ? "The user name selected is already taken" : null;
            });
            return string.Empty;
        }
示例#3
0
        public async Task <string> SavePreRegisteredUser(PreRegisteredUser user, bool sendEmail = true, bool inviteToTenant = false)
        {
            user.ValidUntil =
                DateTime.UtcNow.AddDays(
                    Convert.ToInt32(ConfigurationManager.AppSettings["ValidPreregistrationDays"] ?? "5"));
            user.Token     = Guid.NewGuid().ToString().Replace("-", "");
            user.Activated = false;
            user           = await _preRegistrationRepository.AddAsync(user);

            if (sendEmail && !inviteToTenant)
            {
                await
                _emailServices.SendEmail(user.EmailAddress, "TechTrackerX PreRegistration", "Preregistration",
                                         new Dictionary <string, string>
                {
                    {
                        "TOKEN",
                        $"{ConfigurationManager.AppSettings["WebRoute"]}/register/{user.Token}"
                    },
                    {
                        "NAME",
                        user.UserName
                    }
                },
                                         "EN-US");
            }
            else if (sendEmail)
            {
                await
                _emailServices.SendEmail(user.EmailAddress, "TechTrackerX Invitation", "TenantInvite",
                                         new Dictionary <string, string>
                {
                    {
                        "LINK",
                        $"{ConfigurationManager.AppSettings["WebRoute"]}/account/tenantinvite/{user.Token}"
                    }
                },
                                         "EN-US");
            }
            return(user.Token);
        }
示例#4
0
        public async Task <IHttpActionResult> Preregistration([FromBody] PreRegisteredUser model)
        {
            var validation = await _userProfileServices.IsValid(model);

            string token;

            if (!string.IsNullOrEmpty(validation))
            {
                return(BadRequest(validation));
            }
            try
            {
                token = await _userProfileServices.SavePreRegisteredUser(model);

                return(Ok(token));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }