public ResponseRequestDTO <GeneratePasswordUserViewDTO> sendMail(GeneratePasswordUserViewDTO model)
        {
            var response = new ResponseRequestDTO <GeneratePasswordUserViewDTO>
            {
                code          = STATE_MAIL_OK,
                dateResponse  = DateTime.UtcNow,
                modelResponse = model,
                message       = "Credenciales Enviadas correctamente al usuario"
            };


            var mailResponse = new MessageMail()
                               .addFrom(EMAIL_EMISOR)
                               .addToList(model.email)
                               .addSubject(SUBJECT_GENERATE_PASSWORD)
                               .addBodyMessage(formatMessageForGenerateCredentialsUser(model))
                               .enableBodyHtml()
                               .send();

            if (!mailResponse)
            {
                response.code    = 400; // bad request
                response.message = "Error al enviar el correo con las credenciales de usuario";
            }
            return(response);
        }
        public void ResetPassWord(string _userName)
        {
            PasswordHasher     hasher            = new PasswordHasher();
            IPasswordGenerator gen               = new PasswordGenerator();
            ILoginUser         loggedInUser      = userRepo.GetUserByName(_userName) as ILoginUser;
            string             generatedPassword = gen.GeneratePassword(true, true, true, true, false, 12);

            userRepo.UpdatePassword(loggedInUser.UserID, hasher.HashWithSalt(generatedPassword), hasher.Key);
            EMailSender eMailer = new EMailSender(GlobalSettings.MailSettings.Client);

            try
            {
                IMessageSettableMail mail = new MessageMail(new System.Net.Mail.MailMessage());
                mail.MakeMail(GlobalSettings.MailSettings.ResetSubject, String.Format(GlobalSettings.MailSettings.ResetContent, generatedPassword), loggedInUser.Email);
                eMailer.Send(mail, GlobalSettings.MailSettings.NoReplyAdress, GlobalSettings.MailSettings.NetworkCredentials, GlobalSettings.MailSettings.EnableSSL, GlobalSettings.MailSettings.Port);
            }
            catch { }
        }
        public bool CreateUser(RegisterViewModel vm)
        {
            IObjectPair <IRegisterUser, string> generatedUserPassPair = registerHandler.CreateUser(userRepo.GetAll(), vm.Firstname, vm.Lastname, vm.Email, vm.IsAdmin, vm.Phonenumber, vm.Country, vm.City, vm.Streetname, vm.Zip);

            try
            {
                userRepo.AddUser(generatedUserPassPair.Object1);
                ILoginUser user = userRepo.GetUserByName(generatedUserPassPair.Object1.UserName);
                if (vm.ProfilePicture != null)
                {
                    pictureHandler.PictureCopy(vm.ProfilePicture, user.UserID);
                }
                EMailSender          eMailer = new EMailSender(GlobalSettings.MailSettings.Client);
                IMessageSettableMail mail    = new MessageMail(new System.Net.Mail.MailMessage());
                mail.MakeMail(GlobalSettings.MailSettings.NewUserSubject, String.Format(GlobalSettings.MailSettings.NewUserContent, user.UserName, generatedUserPassPair.Object2), user.Email);
                eMailer.Send(mail, GlobalSettings.MailSettings.NoReplyAdress, GlobalSettings.MailSettings.NetworkCredentials, GlobalSettings.MailSettings.EnableSSL, GlobalSettings.MailSettings.Port);
            }
            catch
            {
                return(false);
                //throw new ArgumentException("Something went wrong with the registration. Check Inner Exception for specific information: /n" + excepton.InnerException.Message);
            }
            return(true);
        }