Beispiel #1
0
        public Status Post([FromBody] GuideInfo guide)
        {
            var emailValidator = new EmailValidation();

            if (!emailValidator.IsValidEmail(guide.Email))
            {
                return new Status
                       {
                           StatusCode = 2002,
                           IsOk       = false,
                           Message    = "Email is not valid"
                       }
            }
            ;

            if (!this.dataAccessLayer.IsValidUserName(guide.UserName))
            {
                return new Status
                       {
                           StatusCode = 2001,
                           IsOk       = false,
                           Message    = "UserName is not valid"
                       }
            }
            ;

            var id = this.dataAccessLayer.AddGuide(guide);

            return(new Status
            {
                StatusCode = 1000,
                IsOk = true,
                Message = "Your account is crated."
            });
        }
        public Status Post([FromBody] DriverInfo driver)
        {
            var emailValidator = new EmailValidation();

            if (!emailValidator.IsValidEmail(driver.Email))
            {
                return new Status
                       {
                           StatusCode = 2002,
                           IsOk       = false,
                           Message    = "Email is not valid"
                       }
            }
            ;

            if (!this.usersDataAccessLayer.IsValidUserName(driver.UserName))
            {
                return new Status
                       {
                           StatusCode = 2001,
                           IsOk       = false,
                           Message    = "UserName is not valid"
                       }
            }
            ;

            this.usersDataAccessLayer.AddDriver(driver);

            return(new Status
            {
                StatusCode = 1000,
                IsOk = true,
                Message = "Your account is crated."
            });
        }
Beispiel #3
0
        private async Task addEmail(IDialogContext context, IAwaitable <string> result)
        {
            string          email      = await result;
            EmailValidation validation = new EmailValidation();
            bool            valid      = validation.IsValidEmail(email);

            if (valid == false)
            {
                await context.PostAsync("E-mail incorreto");

                PromptDialog.Text(context, addEmail, "Por favor entre com um e-mail válido.");
            }
            else
            {
                StoreMail = email;
                PromptDialog.Text(context, confirmationEmail, "Digite novamente seu e-mail para confirmação.");
            }
        }
Beispiel #4
0
        public PasswordPage GoToPasswordPage(string email)
        {
            EmailValidation emailValidation = new EmailValidation();
            ElementIsExist  elementIsExist  = new ElementIsExist();

            if (emailValidation.IsValidEmail(email))
            {
                if (elementIsExist.IsElementPresent(By.XPath("//span[. = 'Next']"), _driver))
                {
                    _emailFieldElement.SendKeys(email);
                    _nextButtElement.Click();
                    return(new PasswordPage(_driver));
                }

                return(null);
            }

            return(null);
        }
Beispiel #5
0
        public Status Post([FromBody] UserInfo user)
        {
            var emailValidator = new EmailValidation();

            if (!emailValidator.IsValidEmail(user.Email))
            {
                return new Status
                       {
                           StatusCode = 2002,
                           IsOk       = false,
                           Message    = "Email is not valid"
                       }
            }
            ;

            if (!this.usersDataAccessLayer.IsValidUserName(user.UserName))
            {
                return new Status
                       {
                           StatusCode = 2001,
                           IsOk       = false,
                           Message    = "UserName is already existing"
                       }
            }
            ;

            this.usersDataAccessLayer.AddUser(user);

            var code = this.usersDataAccessLayer.AddUserVerification(user.UserName);

            var emailSender = new SendVerificationCodeEmail(new NetworkCredential("*****@*****.**", "kanchhiking2018"));

            emailSender.Send(user.Email, code.ToString());

            return(new Status
            {
                StatusCode = 1000,
                IsOk = true,
                Message = "Your account is crated."
            });
        }
Beispiel #6
0
        public static List <string> Validate(this Customer customer)
        {
            var errors = new List <string>();

            if (customer.StatusCustomer != StatusCustomer.Client &&
                customer.StatusCustomer != StatusCustomer.Prospect)
            {
                errors.Add("Customer can be client or prospect.");
            }

            if (customer.Name.Length < 2)
            {
                errors.Add("Name must be longer than 2 characters.");
            }

            EmailValidation email = new EmailValidation();

            if (email.IsValidEmail(customer.Email) == false)
            {
                errors.Add("Wrong email.");
            }

            var regexName = new Regex("^[a-zA-Z0-9 ]*$");

            if (!regexName.IsMatch(customer.Name))
            {
                errors.Add("Name can't contain special characters.");
            }

            var regexPhone = new Regex("^[0-9+() ]*$");

            if (!regexPhone.IsMatch(customer.Phone))
            {
                errors.Add("Phone can't have letters.");
            }

            return(errors);
        }
        public bool RegistrationNewUser(User user)
        {
            using (SqlConnection con = new SqlConnection(sqlConnection))
            {
                try
                {
                    if (!EmailValidation.IsValidEmail(user.Email))
                    {
                        throw new Exception("Your email isn't valid");
                    }
                    con.Open();
                    SqlCommand cmd = new SqlCommand(DataBaseCommands.sp_RegisterNewUser.ToString(), con);
                    cmd.CommandType = CommandType.StoredProcedure;

                    cmd.Parameters.Add(new SqlParameter("@email", user.Email));
                    int row = cmd.ExecuteNonQuery();
                    return(true);
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
Beispiel #8
0
        public static DTOStatus UpdateUser(int id, DTOUser DTOUser, UserManager <ApplicationUser> _userManager, string ConnectionString, string strCurrentUser)
        {
            // Status to return
            DTOStatus objDTOStatus = new DTOStatus();

            objDTOStatus.StatusMessage = "Failure";
            objDTOStatus.Success       = false;

            #region Validation ****************************
            EmailValidation objEmailValidation = new EmailValidation();
            if (!objEmailValidation.IsValidEmail(DTOUser.email))
            {
                objDTOStatus.StatusMessage = "This Email is not valid.";
                objDTOStatus.Success       = false;
                return(objDTOStatus);
            }

            if ((DTOUser.firstName == null) || (DTOUser.firstName.Length < 1))
            {
                objDTOStatus.StatusMessage = "This First Name is not long enough.";
                objDTOStatus.Success       = false;
                return(objDTOStatus);
            }

            if ((DTOUser.lastName == null) || (DTOUser.lastName.Length < 1))
            {
                objDTOStatus.StatusMessage = "This Last Name is not long enough.";
                objDTOStatus.Success       = false;
                return(objDTOStatus);
            }
            #endregion

            var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>();
            optionsBuilder.UseSqlServer(ConnectionString);

            using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
            {
                // Get User
                var objDTOUser = (from objuser in context.AdefHelpDeskUsers
                                  .Include(role => role.AdefHelpDeskUserRoles)
                                  where objuser.UserId == id
                                  select objuser).FirstOrDefault();

                if (objDTOUser == null)
                {
                    objDTOStatus.StatusMessage = "Not Found";
                    objDTOStatus.Success       = false;
                    return(objDTOStatus);
                }

                // Check the Email
                var objAdefHelpDeskEmail = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers
                                            where AdefHelpDeskUsers.Email.ToLower() == DTOUser.email.ToLower()
                                            where AdefHelpDeskUsers.Username != DTOUser.userName
                                            select AdefHelpDeskUsers).FirstOrDefault();

                if (objAdefHelpDeskEmail != null)
                {
                    // User is already taken
                    objDTOStatus.StatusMessage = "This Email address is already taken.";
                    objDTOStatus.Success       = false;
                    return(objDTOStatus);
                }

                try
                {
                    // Update the user
                    objDTOUser.FirstName        = DTOUser.firstName;
                    objDTOUser.LastName         = DTOUser.lastName;
                    objDTOUser.Email            = DTOUser.email;
                    objDTOUser.VerificationCode = null; // Admin updating user always clears verification code

                    // Cannot change your own IsSuperUser status
                    if (objDTOUser.Username != strCurrentUser)
                    {
                        objDTOUser.IsSuperUser = DTOUser.isSuperUser;
                    }

                    context.SaveChanges();
                }
                catch (Exception ex)
                {
                    objDTOStatus.Success       = false;
                    objDTOStatus.StatusMessage = ex.GetBaseException().Message;
                    return(objDTOStatus);
                }

                // Delete all roles -- so we can add the new ones
                foreach (var itemRole in objDTOUser.AdefHelpDeskUserRoles)
                {
                    var objUserRole = context.AdefHelpDeskUserRoles.SingleOrDefault(x => x.UserRoleId == itemRole.UserRoleId);
                    context.AdefHelpDeskUserRoles.Remove(objUserRole);
                }

                context.SaveChanges();

                // Add the Roles for the user
                foreach (var itemRole in DTOUser.userRoles)
                {
                    AdefHelpDeskUserRoles objRoleDTO = new AdefHelpDeskUserRoles();

                    objRoleDTO.RoleId = itemRole.iD;
                    objRoleDTO.UserId = DTOUser.userId;

                    context.AdefHelpDeskUserRoles.Add(objRoleDTO);
                }

                context.SaveChanges();
            }

            #region Migrate User (if needed)
            // Get user in UserManager
            var user = _userManager.FindByNameAsync(DTOUser.userName).Result;
            if (user == null)
            {
                // The user is in the old memebership API
                // Migrate them

                if ((DTOUser.password != null) && (DTOUser.password.Trim().Length < 1))
                {
                    objDTOStatus.Success       = false;
                    objDTOStatus.StatusMessage = "Account must be migrated to the new membership system -- Must supply a new password";
                    return(objDTOStatus);
                }

                RegisterDTO objRegisterDTO = new RegisterDTO();

                objRegisterDTO.email     = DTOUser.email;
                objRegisterDTO.firstName = DTOUser.firstName;
                objRegisterDTO.lastName  = DTOUser.lastName;
                objRegisterDTO.password  = DTOUser.password;
                objRegisterDTO.userName  = DTOUser.userName;

                try
                {
                    // Membership API

                    user = new ApplicationUser {
                        UserName = DTOUser.userName, Email = DTOUser.email
                    };
                    var RegisterStatus = _userManager.CreateAsync(user, DTOUser.password).Result;

                    if (!RegisterStatus.Succeeded)
                    {
                        // Registration was not successful
                        if (RegisterStatus.Errors.FirstOrDefault() != null)
                        {
                            objDTOStatus.StatusMessage = RegisterStatus.Errors.FirstOrDefault().Description;
                        }
                        else
                        {
                            objDTOStatus.StatusMessage = "Registration error";
                        }

                        objDTOStatus.Success = false;
                        return(objDTOStatus);
                    }
                }
                catch (Exception ex)
                {
                    objDTOStatus.Success       = false;
                    objDTOStatus.StatusMessage = ex.Message;
                    return(objDTOStatus);
                }
            }
            #endregion

            // Update Email
            var result = _userManager.SetEmailAsync(user, DTOUser.email).Result;

            // Only update password if it is passed
            if ((DTOUser.password != null) && (DTOUser.password.Trim().Length > 1))
            {
                try
                {
                    var resetToken     = _userManager.GeneratePasswordResetTokenAsync(user).Result;
                    var passwordResult = _userManager.ResetPasswordAsync(user, resetToken, DTOUser.password).Result;

                    if (!passwordResult.Succeeded)
                    {
                        if (passwordResult.Errors.FirstOrDefault() != null)
                        {
                            objDTOStatus.StatusMessage = passwordResult.Errors.FirstOrDefault().Description;
                        }
                        else
                        {
                            objDTOStatus.StatusMessage = "Pasword error";
                        }

                        objDTOStatus.Success = false;
                        return(objDTOStatus);
                    }
                }
                catch (Exception ex)
                {
                    objDTOStatus.Success       = false;
                    objDTOStatus.StatusMessage = ex.Message;
                    return(objDTOStatus);
                }
            }

            objDTOStatus.StatusMessage = "";
            objDTOStatus.Success       = true;

            return(objDTOStatus);
        }
        public IActionResult Index([FromBody] DTOMigration Migration)
        {
            // LoginStatus to return
            LoginStatus objLoginStatus = new LoginStatus();

            objLoginStatus.isLoggedIn = false;

            if ((Migration.userName != null) && (Migration.password != null) && (Migration.passwordNew != null))
            {
                // Get values passed
                var paramUserName    = Migration.userName;
                var paramPassword    = ComputeHash.GetSwcMD5(paramUserName.Trim().ToLower() + Migration.password.Trim());
                var paramPasswordNew = Migration.passwordNew;

                var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>();
                optionsBuilder.UseSqlServer(GetConnectionString());

                using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
                {
                    // Must be in legacy User table
                    var objAdefHelpDeskUser = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers
                                               where AdefHelpDeskUsers.Username == paramUserName
                                               where AdefHelpDeskUsers.Password == paramPassword
                                               select AdefHelpDeskUsers).FirstOrDefault();

                    if (objAdefHelpDeskUser != null)
                    {
                        // Email Validation ****************************

                        if (objAdefHelpDeskUser.Email == null)
                        {
                            objLoginStatus.status     = "The Email for this account is not valid. It cannot be migrated.";
                            objLoginStatus.isLoggedIn = false;
                            return(Ok(objLoginStatus));
                        }

                        EmailValidation objEmailValidation = new EmailValidation();
                        if (!objEmailValidation.IsValidEmail(objAdefHelpDeskUser.Email))
                        {
                            objLoginStatus.status     = "The Email for this account is not valid. It cannot be migrated.";
                            objLoginStatus.isLoggedIn = false;
                            return(Ok(objLoginStatus));
                        }

                        // Migrate Account

                        var user = new ApplicationUser {
                            UserName = paramUserName, Email = objAdefHelpDeskUser.Email
                        };
                        var result = _userManager.CreateAsync(user, paramPasswordNew).Result;

                        if (result.Succeeded)
                        {
                            // Sign the User in
                            var SignInResult = _signInManager.PasswordSignInAsync(
                                paramUserName, paramPasswordNew, false, lockoutOnFailure: false).Result;

                            if (!SignInResult.Succeeded)
                            {
                                // Return the error
                                objLoginStatus.status     = $"Could not sign user {paramUserName} in.";
                                objLoginStatus.isLoggedIn = false;
                                return(Ok(objLoginStatus));
                            }
                            else
                            {
                                try
                                {
                                    // Everything worked
                                    // Update the users password in the legacy table
                                    objAdefHelpDeskUser.Password = ComputeHash.GetSwcMD5(paramUserName.Trim().ToLower() + paramPasswordNew.Trim());
                                    context.SaveChanges();
                                }
                                catch
                                {
                                    // Do nothing if this does not work
                                    // This password is only needed if connecting from the older
                                    // Non Angular version of ADefHelpDesk
                                }

                                // Success
                                objLoginStatus.status     = $"Logged {paramUserName} in.";
                                objLoginStatus.isLoggedIn = true;
                                return(Ok(objLoginStatus));
                            }
                        }
                        else
                        {
                            // Return the errors from the Memberhip API Creation
                            string strErrors = "";
                            foreach (var Error in result.Errors)
                            {
                                strErrors = strErrors + "\n" + Error.Description;
                            }

                            // Return the error
                            objLoginStatus.status     = strErrors;
                            objLoginStatus.isLoggedIn = false;
                            return(Ok(objLoginStatus));
                        }
                    }
                    else
                    {
                        objLoginStatus.status = "Orginal password does not match.";
                        return(Ok(objLoginStatus));
                    }
                }
            }

            objLoginStatus.status = "Authentication Failure";

            return(Ok(objLoginStatus));
        }
 public void IsValidEmail_Return_False()
 {
     Assert.False(EmailValidation.IsValidEmail(null));
 }
Beispiel #11
0
        public static List <string> Validate(this Employee employee)
        {
            var errors = new List <string>();

            if (employee.StatusEmployee != StatusEmployee.Active &&
                employee.StatusEmployee != StatusEmployee.Leaver &&
                employee.StatusEmployee != StatusEmployee.Trial)
            {
                errors.Add("Employee can be active, leaver or trial.");
            }

            if (employee.Salary < 410 || employee.Salary > 10000)
            {
                errors.Add("Minimum salary can be 410 and maximum 10000.");
            }

            if (employee.FirstName.Length < 2)
            {
                errors.Add("First Name must be longer than 1 character.");
            }

            if (employee.LastName.Length < 2)
            {
                errors.Add("Last Name must be longer than 1 character.");
            }

            var regexPhone = new Regex("^[0-9+() ]*$");

            if (!regexPhone.IsMatch(employee.Phone))
            {
                errors.Add("Phone can't have letters.");
            }

            EmailValidation email = new EmailValidation();

            if (email.IsValidEmail(employee.Email) == false)
            {
                errors.Add("Wrong email.");
            }

            var regexName = new Regex("^[a-zA-Zšđč枊ĐČĆŽ ]*$");

            if (!regexName.IsMatch(employee.FirstName))
            {
                errors.Add("First Name can't contain special characters and numbers.");
            }

            if (!regexName.IsMatch(employee.LastName))
            {
                errors.Add("Last Name can't contain special characters.");
            }

            if (employee.BeginDate > employee.EndDate)
            {
                errors.Add("End date must be after begin date.");
            }

            var years = DateTime.Now.Year - employee.BirthDate.Year;

            if (years < 18)
            {
                errors.Add("Emplyoee must be older than 18.");
            }

            return(errors);
        }
Beispiel #12
0
        public DTOSMTPSetting SMTPSetting([FromBody] DTOSMTPSetting SMTPSetting)
        {
            DTOSMTPSetting objDTOSMTPSetting = new DTOSMTPSetting();

            objDTOSMTPSetting.smtpValid  = true;
            objDTOSMTPSetting.smtpStatus = "Settings Updated";

            // Must be a Super Administrator to call this Method
            if (!UtilitySecurity.IsSuperUser(this.User.Identity.Name, GetConnectionString()))
            {
                objDTOSMTPSetting.smtpValid  = false;
                objDTOSMTPSetting.smtpStatus = "";
                return(objDTOSMTPSetting);
            }

            // Get Update Type (Save/Test)
            string strUpdateType = SMTPSetting.updateType;

            // Get GeneralSettings
            GeneralSettings objGeneralSettings = new GeneralSettings(GetConnectionString());

            #region Validation ****************************
            if ((SMTPSetting.smtpServer == null) || (SMTPSetting.smtpServer.Trim().Length < 1))
            {
                objDTOSMTPSetting.smtpValid  = false;
                objDTOSMTPSetting.smtpStatus = "SMTP Server is not valid";
                return(objDTOSMTPSetting);
            }

            if ((SMTPSetting.smtpAuthentication == null) || (SMTPSetting.smtpAuthentication.Trim().Length < 1))
            {
                objDTOSMTPSetting.smtpValid  = false;
                objDTOSMTPSetting.smtpStatus = "SMTP Authentication is not valid";
                return(objDTOSMTPSetting);
            }

            if ((SMTPSetting.smtpFromEmail == null) || (SMTPSetting.smtpFromEmail.Trim().Length < 1))
            {
                objDTOSMTPSetting.smtpValid  = false;
                objDTOSMTPSetting.smtpStatus = "From Email is not valid";
                return(objDTOSMTPSetting);
            }

            EmailValidation objEmailValidation = new EmailValidation();
            if (!objEmailValidation.IsValidEmail(SMTPSetting.smtpFromEmail))
            {
                objDTOSMTPSetting.smtpValid  = false;
                objDTOSMTPSetting.smtpStatus = "From Email is not a valid email";
                return(objDTOSMTPSetting);
            }
            #endregion

            // Update ****************************

            try
            {
                objGeneralSettings.UpdateSMTPServer(GetConnectionString(), SMTPSetting.smtpServer);
                objGeneralSettings.UpdateSMTPAuthentication(GetConnectionString(), SMTPSetting.smtpAuthentication);
                objGeneralSettings.UpdateSMTPFromEmail(GetConnectionString(), SMTPSetting.smtpFromEmail);
                objGeneralSettings.UpdateSMTPSecure(GetConnectionString(), (SMTPSetting.smtpSecure == "True") ? true: false);
                objGeneralSettings.UpdateSMTPUserName(GetConnectionString(), SMTPSetting.smtpUserName);

                // Only set Password if it has been updated
                // The default non-password is
                if (SMTPSetting.smtpPassword.Replace(Constants.NONPassword, "") != "")
                {
                    objGeneralSettings.UpdateSMTPPassword(GetConnectionString(), SMTPSetting.smtpPassword);
                }
            }
            catch (Exception ex)
            {
                objDTOSMTPSetting.smtpValid  = false;
                objDTOSMTPSetting.smtpStatus = ex.GetBaseException().Message;
                return(objDTOSMTPSetting);
            }

            // Test Email  ****************************
            if (strUpdateType == "Test")
            {
                // Send Test Email
                objDTOSMTPSetting.smtpStatus = Email.SendMail(
                    false,
                    GetConnectionString(),
                    SMTPSetting.smtpFromEmail,
                    "ADefHelpDesk Administrator",
                    "", "",
                    SMTPSetting.smtpFromEmail,
                    "SMTP Test",
                    "ADefHelpDesk SMTP Test Email",
                    $"This is a ADefHelpDesk SMTP Test Email from: {this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}");

                if (objDTOSMTPSetting.smtpStatus != "")
                {
                    // There was some sort of error - return it
                    objDTOSMTPSetting.smtpValid = false;
                    return(objDTOSMTPSetting);
                }
                else
                {
                    objDTOSMTPSetting.smtpStatus = "Settings Updated - Test Email Sent";
                }
            }

            return(objDTOSMTPSetting);
        }
        public static RegisterStatus RegisterUser(RegisterDTO Register, string _DefaultConnection, IWebHostEnvironment _hostEnvironment, UserManager <ApplicationUser> _userManager, SignInManager <ApplicationUser> _signInManager, string CurrentHostLocation, bool BypassVerify, bool SignUserIn)
        {
            // RegisterStatus to return
            RegisterStatus objRegisterStatus = new RegisterStatus();

            objRegisterStatus.status               = "Registration Failure";
            objRegisterStatus.isSuccessful         = false;
            objRegisterStatus.requiresVerification = false;

            // Get values passed
            var paramUserName  = Register.userName.Trim();
            var paramPassword  = Register.password.Trim();
            var paramFirstName = Register.firstName.Trim();
            var paramLastName  = Register.lastName.Trim();
            var paramEmail     = Register.email.Trim();

            // Validation ****************************

            EmailValidation objEmailValidation = new EmailValidation();

            if (!objEmailValidation.IsValidEmail(paramEmail))
            {
                objRegisterStatus.status       = "This Email is not valid.";
                objRegisterStatus.isSuccessful = false;
                return(objRegisterStatus);
            }

            if ((paramUserName == null) || (paramUserName.Length < 1))
            {
                objRegisterStatus.status       = "This Username is not long enough.";
                objRegisterStatus.isSuccessful = false;
                return(objRegisterStatus);
            }

            var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>();

            optionsBuilder.UseSqlServer(_DefaultConnection);

            using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
            {
                // Check the Username
                var objAdefHelpDeskUserName = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers
                                               where AdefHelpDeskUsers.Username == paramUserName
                                               select AdefHelpDeskUsers).FirstOrDefault();

                if (objAdefHelpDeskUserName != null)
                {
                    // User is already taken
                    objRegisterStatus.status       = "This Username is already taken.";
                    objRegisterStatus.isSuccessful = false;
                    return(objRegisterStatus);
                }

                // Check the Email
                var objAdefHelpDeskEmail = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers
                                            where AdefHelpDeskUsers.Email == paramEmail
                                            select AdefHelpDeskUsers).FirstOrDefault();

                if (objAdefHelpDeskEmail != null)
                {
                    // User is already taken
                    objRegisterStatus.status       = "This Email address is already taken.";
                    objRegisterStatus.isSuccessful = false;
                    return(objRegisterStatus);
                }
            }

            // Create Account ****************************

            // User Table
            try
            {
                using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
                {
                    AdefHelpDeskUsers objAdefHelpDeskUsers = new AdefHelpDeskUsers();
                    objAdefHelpDeskUsers.Username  = paramUserName;
                    objAdefHelpDeskUsers.Email     = paramEmail;
                    objAdefHelpDeskUsers.FirstName = paramFirstName;
                    objAdefHelpDeskUsers.LastName  = paramLastName;
                    objAdefHelpDeskUsers.Password  = ""; // No longer store the password here

                    context.AdefHelpDeskUsers.Add(objAdefHelpDeskUsers);
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                // Return the error
                objRegisterStatus.status       = ex.GetBaseException().Message;
                objRegisterStatus.isSuccessful = false;
                return(objRegisterStatus);
            }

            // Membership API

            var user = new ApplicationUser {
                UserName = paramUserName, Email = paramEmail
            };
            var result = _userManager.CreateAsync(user, paramPassword).Result;

            if (!result.Succeeded)
            {
                // Create user failed
                try
                {
                    // Delete user from the User table
                    using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
                    {
                        var objAdefHelpDeskUser = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers
                                                   where AdefHelpDeskUsers.Username == paramUserName
                                                   select AdefHelpDeskUsers).FirstOrDefault();

                        if (objAdefHelpDeskUser != null)
                        {
                            context.AdefHelpDeskUsers.Remove(objAdefHelpDeskUser);
                            context.SaveChanges();
                        }
                    }
                }
                catch
                {
                    // Do nothing if this fails
                }

                // Return the errors from the Memberhip API Creation
                string strErrors = "";
                foreach (var Error in result.Errors)
                {
                    strErrors = strErrors + "\n" + Error.Description;
                }

                objRegisterStatus.status       = strErrors;
                objRegisterStatus.isSuccessful = false;
                return(objRegisterStatus);
            }

            objRegisterStatus.status       = "Success";
            objRegisterStatus.isSuccessful = true;

            // *** Verified Accounts
            // Determine if verified registration is turned on
            // and BypassVerify is also on

            GeneralSettings objGeneralSettings = new GeneralSettings(_DefaultConnection);

            if ((!BypassVerify) && (objGeneralSettings.VerifiedRegistration))
            {
                // Get a random verify code
                string strVerifyCode = CreateVerificationKey(5);

                // Write it to the users record
                using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
                {
                    var objAdefHelpDeskUser = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers
                                               where AdefHelpDeskUsers.Username == paramUserName
                                               select AdefHelpDeskUsers).FirstOrDefault();

                    if (objAdefHelpDeskUser != null)
                    {
                        objAdefHelpDeskUser.VerificationCode = strVerifyCode;
                        context.AdefHelpDeskUsers.Update(objAdefHelpDeskUser);
                        context.SaveChanges();
                    }
                }

                // Send the user the verification email
                string strFullName = $"{paramFirstName} {paramLastName}";

                // Get file and make replacements
                string strEmailContents = System.IO.File.ReadAllText(System.IO.Path.Combine(_hostEnvironment.ContentRootPath, "SystemFiles", "Email-UserVerification.txt").Replace(@"\", @"/"));
                strEmailContents = strEmailContents.Replace("[strFullName]", strFullName);
                strEmailContents = strEmailContents.Replace("[CurrentHostLocation]", CurrentHostLocation);
                strEmailContents = strEmailContents.Replace("[paramUserName]", paramUserName);
                strEmailContents = strEmailContents.Replace("[strVerifyCode]", strVerifyCode);

                // Send Email
                // Async is turned off because we may have verified registration but the email server may not be working
                // The user needs to know this because their registration cannot proceed
                string smtpStatus = Email.SendMail(
                    false,
                    _DefaultConnection,
                    paramEmail,
                    strFullName,
                    "", "",
                    objGeneralSettings.SMTPFromEmail,
                    "Verification Email",
                    "ADefHelpDesk Registration Verification Email",
                    $"{strEmailContents} <br><br> This Email was sent from: {CurrentHostLocation}.");

                if (smtpStatus != "")
                {
                    // There was some sort of error - return it
                    objRegisterStatus.status               = smtpStatus;
                    objRegisterStatus.isSuccessful         = false;
                    objRegisterStatus.requiresVerification = true;
                    return(objRegisterStatus);
                }

                // Tell user they need to use the code that was just sent
                objRegisterStatus.requiresVerification = true;
                objRegisterStatus.status = $"Your registration was successful. ";
                objRegisterStatus.status = objRegisterStatus.status + $"However, registration is verified. ";
                objRegisterStatus.status = objRegisterStatus.status + $"You have been emailed a verification code that must be used to complete your registration.";
            }
            else
            {
                if (SignUserIn)
                {
                    // Sign the User in
                    var SignInResult = _signInManager.PasswordSignInAsync(
                        paramUserName, paramPassword, false, lockoutOnFailure: false).Result;

                    if (!SignInResult.Succeeded)
                    {
                        // Return the error
                        objRegisterStatus.status       = $"Could not sign user {paramUserName} in.";
                        objRegisterStatus.isSuccessful = false;
                        return(objRegisterStatus);
                    }
                }
            }

            return(objRegisterStatus);
        }
Beispiel #14
0
        public IActionResult Index([FromBody] ProfileDTO Profile)
        {
            ProfileStatus objProfileStatus = new ProfileStatus();

            objProfileStatus.isSuccessful = true;
            objProfileStatus.status       = "";

            #region Validation ****************************
            EmailValidation objEmailValidation = new EmailValidation();
            if (!objEmailValidation.IsValidEmail(Profile.email))
            {
                objProfileStatus.status       = "This Email is not valid.";
                objProfileStatus.isSuccessful = false;
                return(Ok(objProfileStatus));
            }

            if ((Profile.firstName == null) || (Profile.firstName.Length < 1))
            {
                objProfileStatus.status       = "This First Name is not long enough.";
                objProfileStatus.isSuccessful = false;
                return(Ok(objProfileStatus));
            }

            if ((Profile.lastName == null) || (Profile.lastName.Length < 1))
            {
                objProfileStatus.status       = "This Last Name is not long enough.";
                objProfileStatus.isSuccessful = false;
                return(Ok(objProfileStatus));
            }
            #endregion

            // Update User ****************************

            string CurrentUser = this.User.Identity.Name;

            var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>();
            optionsBuilder.UseSqlServer(GetConnectionString());

            using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
            {
                try
                {
                    // Check the Email
                    string strEmailToCheck      = Profile.email.Trim().ToLower();
                    var    objAdefHelpDeskEmail = (from AdefHelpDeskUsers in context.AdefHelpDeskUsers
                                                   where AdefHelpDeskUsers.Email.ToLower() == strEmailToCheck
                                                   where AdefHelpDeskUsers.Username != CurrentUser
                                                   select AdefHelpDeskUsers).FirstOrDefault();

                    if (objAdefHelpDeskEmail != null)
                    {
                        // User is already taken
                        objProfileStatus.status       = "This Email address is already taken.";
                        objProfileStatus.isSuccessful = false;
                        return(Ok(objProfileStatus));
                    }

                    // Get the user
                    var objUser = (from user in context.AdefHelpDeskUsers
                                   where user.Username == CurrentUser
                                   select user).FirstOrDefault();

                    if (objUser != null)
                    {
                        // Update them
                        objUser.FirstName = Profile.firstName.Trim();
                        objUser.LastName  = Profile.lastName.Trim();
                        objUser.Email     = Profile.email.Trim();

                        #region See if the password will be updated
                        if (
                            (Profile.orginalpassword != null) &&
                            (Profile.orginalpassword.Trim().Length > 1) &&
                            (Profile.password != null) &&
                            (Profile.password.Trim().Length > 1)
                            )
                        {
                            // The original password must be correct
                            var user         = _userManager.Users.Where(x => x.UserName == CurrentUser).FirstOrDefault();
                            var SignInResult = _userManager.CheckPasswordAsync(user, Profile.orginalpassword.Trim()).Result;

                            if (!SignInResult)
                            {
                                objProfileStatus.status =
                                    "The original password must be correct to set the new password.";
                                objProfileStatus.isSuccessful = false;
                                return(Ok(objProfileStatus));
                            }

                            // First try to update the password in the ASP.NET Membership provider
                            var result = _userManager.ChangePasswordAsync(
                                user, Profile.orginalpassword.Trim(), Profile.password.Trim()).Result;

                            if (!result.Succeeded)
                            {
                                // Return the errors
                                string strErrors = "";
                                foreach (var Error in result.Errors)
                                {
                                    strErrors = strErrors + "\n" + Error.Description;
                                }

                                objProfileStatus.status       = strErrors;
                                objProfileStatus.isSuccessful = false;
                                return(Ok(objProfileStatus));
                            }
                        }
                        #endregion

                        // Save changes
                        context.SaveChanges();
                    }
                    else
                    {
                        objProfileStatus.isSuccessful = false;
                        objProfileStatus.status       = $"Could not find {CurrentUser} in database";
                    }
                }
                catch (Exception ex)
                {
                    objProfileStatus.isSuccessful = false;
                    objProfileStatus.status       = ex.GetBaseException().Message;
                }
            }

            return(Ok(objProfileStatus));
        }
Beispiel #15
0
        public IActionResult Index([FromBody] RegisterDTO Register)
        {
            // RegisterStatus to return
            RegisterStatus objRegisterStatus = new RegisterStatus();

            objRegisterStatus.status       = "Registration Failure";
            objRegisterStatus.isSuccessful = false;

            // Get values passed
            var paramUserName  = Register.userName.Trim();
            var paramPassword  = Register.password.Trim();
            var paramFirstName = Register.firstName.Trim();
            var paramLastName  = Register.lastName.Trim();
            var paramEmail     = Register.email.Trim();

            // Validation ****************************

            EmailValidation objEmailValidation = new EmailValidation();

            if (!objEmailValidation.IsValidEmail(paramEmail))
            {
                objRegisterStatus.status       = "This Email is not valid.";
                objRegisterStatus.isSuccessful = false;
                return(Ok(objRegisterStatus));
            }

            if ((paramUserName == null) || (paramUserName.Length < 1))
            {
                objRegisterStatus.status       = "This Username is not long enough.";
                objRegisterStatus.isSuccessful = false;
                return(Ok(objRegisterStatus));
            }

            // Create Account ****************************

            try
            {
                var user = new ApplicationUser {
                    UserName = paramUserName, Email = paramEmail
                };
                var result = _userManager.CreateAsync(user, paramPassword).Result;

                if (result.Succeeded)
                {
                    // Sign the User in
                    var SignInResult = _signInManager.PasswordSignInAsync(
                        paramUserName, paramPassword, false, lockoutOnFailure: false).Result;

                    if (!SignInResult.Succeeded)
                    {
                        // Return the error
                        objRegisterStatus.status       = $"Could not sign user {paramUserName} in.";
                        objRegisterStatus.isSuccessful = false;
                        return(Ok(objRegisterStatus));
                    }
                }
                else
                {
                    // Create user failed
                    // Return the errors from the Memberhip API Creation
                    string strErrors = "";
                    foreach (var Error in result.Errors)
                    {
                        strErrors = strErrors + "\n" + Error.Description;
                    }

                    objRegisterStatus.status       = strErrors;
                    objRegisterStatus.isSuccessful = false;
                    return(Ok(objRegisterStatus));
                }

                objRegisterStatus.status       = "Success";
                objRegisterStatus.isSuccessful = true;

                return(Ok(objRegisterStatus));
            }
            catch (Exception ex)
            {
                objRegisterStatus.status       = ex.Message;
                objRegisterStatus.isSuccessful = false;

                return(Ok(objRegisterStatus));
            }
        }
        // Await for db call on need
        public async Task <UploadResult> AddPeople(string path, string pwd = default)
        {
            var file         = new FileInfo(path);
            var uploadResult = new UploadResult();

            if (file != null && file.Length > 0 && !string.IsNullOrEmpty(file.Name))
            {
                //You can save a copy of the file if u wish
                var fileName = Path.GetFileName(file.Name);
                if (Path.GetExtension(fileName) == ".xls" || Path.GetExtension(fileName) == ".xlsx")
                {
                    //If file has a password supply it as second parameter below
                    using (var package = new ExcelPackage(file))
                    {
                        List <Person> people = new List <Person>();
                        List <ExcelIterationResult> excelIterationResults = new List <ExcelIterationResult>();
                        //var workSheet = currentSheet.First(); ///Use this for only single worksheet
                        foreach (var workSheet in package.Workbook.Worksheets)
                        {
                            //Assumes first row is header row
                            for (int rowIterator = 2; rowIterator <= workSheet.Dimension.End.Row; rowIterator++)
                            {
                                ExcelIterationResult Er = new ExcelIterationResult();
                                //Columns have to be in order
                                var           surName    = workSheet.Cells[rowIterator, 1].Value.ToString().Trim();
                                var           firstName  = workSheet.Cells[rowIterator, 2].Value.ToString().Trim();
                                var           middleName = workSheet.Cells[rowIterator, 3].Value.ToString().Trim();
                                var           phone      = workSheet.Cells[rowIterator, 4].Value.ToString().Trim();
                                var           email      = workSheet.Cells[rowIterator, 5].Value.ToString().Trim();
                                var           dob        = workSheet.Cells[rowIterator, 6].Value.ToString().Trim();
                                List <string> mess       = new List <string>();
                                if (string.IsNullOrWhiteSpace(surName))
                                {
                                    mess.Add("Surname is required");
                                }
                                if (string.IsNullOrWhiteSpace(firstName))
                                {
                                    mess.Add("Surname is required");
                                }
                                if (string.IsNullOrWhiteSpace(phone))
                                {
                                    mess.Add("Surname is required");
                                }
                                if (string.IsNullOrWhiteSpace(email))
                                {
                                    mess.Add("Surname is required");
                                }
                                //Validate your values
                                if (!EmailValidation.IsValidEmail(email))
                                {
                                    mess.Add($"{email} is invalid");
                                }
                                if (!PhoneNumberValidation.IsValidPhoneNumber(phone))
                                {
                                    mess.Add($"{phone} is invalid");
                                }
                                if (mess.Any())
                                {
                                    Er.Status    = false;
                                    Er.RowNumber = rowIterator;
                                    Er.Reasons   = mess;
                                    excelIterationResults.Add(Er);
                                }
                                else
                                {
                                    people.Add(Person.Create(surName, firstName, phone, email, Convert.ToDateTime(dob), middleName));
                                }
                            }
                        }
                        uploadResult.People.AddRange(people);
                        uploadResult.Results.AddRange(excelIterationResults);
                        if (excelIterationResults.Any())
                        {
                            uploadResult.Status = false; uploadResult.Message = "Some data was invalid";
                        }
                        else
                        {
                            uploadResult.Status = true;
                        }
                    }
                }
                else
                {
                    uploadResult.Status  = false;
                    uploadResult.Message = "Not a valid excel file";
                }
            }
            else
            {
                uploadResult.Status  = false;
                uploadResult.Message = "Empty file";
            }
            return(uploadResult);
        }
Beispiel #17
0
        private void button_Click(object sender, RoutedEventArgs e)
        {
            //Create variables for the textbox elements
            var name           = TxtNm.Text;
            var username       = TxtUsrNm.Text;
            var password       = TxtPswd.Password;
            var passwordRepeat = TxtPswdRpt.Password;
            var email          = TxtEml.Text;

            //create a new instance of the SendData class
            SendData regitems = new SendData {
                RegName = name, RegUsername = username, RegPass = password, RegPassRpt = passwordRepeat, RegEmail = email
            };


            //Run a bunch of if statements to find out if the user has not filled out one or more of the forms.
            //Return a messagebox telling the user which form(s) they still have to fill in.
            //Following the order of: Name, Username, Email, Password, repeated password.
            if (string.IsNullOrWhiteSpace(name))
            {
                MessageBox.Show(this, "You did not enter a name" + (string.IsNullOrWhiteSpace(username) ? " and username" : "") + (string.IsNullOrWhiteSpace(email) ? " and email" : "") + (string.IsNullOrWhiteSpace(password) ? " and password" : "") + (string.IsNullOrWhiteSpace(passwordRepeat) ? " and the repeated password" : ""));
                return;
            }
            else if (string.IsNullOrWhiteSpace(username))
            {
                MessageBox.Show(this, "You did not enter a username" + (string.IsNullOrWhiteSpace(email) ? " and email" : "") + (string.IsNullOrWhiteSpace(password) ? " and password" : "") + (string.IsNullOrWhiteSpace(passwordRepeat) ? " and the repeated password" : ""));
                return;
            }
            else if (string.IsNullOrWhiteSpace(email))
            {
                MessageBox.Show(this, "You did not enter an email" + (string.IsNullOrWhiteSpace(password) ? " and password" : "") + (string.IsNullOrWhiteSpace(passwordRepeat) ? " and the repeated password" : ""));
                return;
            }
            else if (string.IsNullOrWhiteSpace(password))
            {
                MessageBox.Show(this, "You did not enter a password" + (string.IsNullOrWhiteSpace(passwordRepeat) ? " and the repeated password" : ""));
                return;
            }
            else if (string.IsNullOrWhiteSpace(passwordRepeat))
            {
                MessageBox.Show(this, "You did not enter the repeated password");
                return;
            }
            //When all froms are filled run a few validation checks
            //Hash and salt the password
            //Send all the data to the database
            else
            {
                //Check with the help of the email validation class if the user entered a valid email address.
                EmailValidation Email = new EmailValidation();
                if (Email.IsValidEmail(email))
                {
                    Console.WriteLine("Valid");
                }
                else
                {
                    Console.WriteLine("Invalid");
                }

                // Check if the password and repeated password are the same
                if (password == passwordRepeat)
                {
                    Console.WriteLine("Same");
                }
                else
                {
                    Console.WriteLine("Different");
                }
                //Hash and salt the entered password.
                var Hash = Hashing.CreateHash(password);
                Console.WriteLine(Hash);
                regitems.RegHash = Hash;
            }
            Console.WriteLine("Succesful");
            regitems.SendRegister();
        }
 public void IsValidEmail_Return_True()
 {
     Assert.True(EmailValidation.IsValidEmail("*****@*****.**"));
 }