public static TutorType PrepareForConfirmation(long userId, int objEntityId, int stepId, string actUrl = "", int? lang = 1, string conStr = "") { const int MAXIMUM_PASSWORD_ATTEMPTS = 10000; bool includeLowercase = true; bool includeUppercase = true; bool includeNumeric = true; bool includeSpecial = false; int lengthOfPassword = 16; PasswordGeneratorSettings settings = new PasswordGeneratorSettings(includeLowercase, includeUppercase, includeNumeric, includeSpecial, lengthOfPassword); string actCode; if (!settings.IsValidLength()) { actCode = settings.LengthErrorMessage(); } else { int passwordAttempts = 0; do { actCode = PasswordGenerator.GeneratePassword(settings); passwordAttempts++; } while (passwordAttempts < MAXIMUM_PASSWORD_ATTEMPTS && !PasswordGenerator.PasswordIsValid(settings, actCode)); actCode = PasswordGenerator.PasswordIsValid(settings, actCode) ? actCode : "Try again"; } using (SqlConnection con = new SqlConnection(conStr)) { SqlCommand cmd = new SqlCommand("sp_ManageTutor", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter() { ParameterName = "@Mode", Value = "CheckAgreement" }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@UId", Value = userId }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@ObjEntityId", Value = objEntityId }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@RegistrationStepId", Value = stepId }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@ActivationCode", Value = actCode }); con.Open(); SqlDataReader rdr = cmd.ExecuteReader(); TutorType tutor = null; if (rdr.HasRows) { rdr.Read(); tutor = new TutorType(rdr); } bool success = false; if (tutor != null) { //TODO: Notify SecondaryEmail first if any. string htmlString = "<html><body><h1>Dear " + tutor.FirstName + ",</h1><br/>" + "<h6>Please click on the link below to confirm our business agreement:</h6><br/><br/>" + "<a href='" + actUrl + "/" + tutor.UserId + "/" + actCode + "/" + stepId + "/" + lang + "'>Ready For The Interview</a></body></html>"; success = new EmailNotifier { From = "*****@*****.**",//TODO: Read from DB Password = "******",//TODO: Read from DB To = new string[] { tutor.Email }, Subject = "INTO Tutoring Agreement", Body = htmlString, IsBodyHtml = true, SmtpServer = "smtp.gmail.com", SmtpPort = 587, IsSSL = true }.Notify(); } return tutor; } }
public static BLL.Tutor.Tutor SaveTutorProfile(BLL.Tutor.Tutor profile = null, string connection = "") { //sql procedure DataTable dt = new DataTable(); dt.Columns.Add("Institute"); dt.Columns.Add("Major"); dt.Columns.Add("DegreeId"); foreach (var item in profile.Education) { var row = dt.NewRow(); row["Institute"] = Convert.ToString(item.Institute); row["Major"] = Convert.ToString(item.Major); row["DegreeId"] = Convert.ToInt32(item.DegreeId); dt.Rows.Add(row); } using (SqlConnection con = new SqlConnection(connection)) { //Getting Countries SqlCommand cmd = new SqlCommand("sp_ManageTutor", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter() { ParameterName = "@Mode", Value = "SaveBasicInfo" }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@RecognitionId", Value = profile.Recognition }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@UId", Value = profile.UserId }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@ID", Value = profile.Id }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@TutorEducation", Value = dt }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@Gender", Value = profile.Gender }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@CancellationNotice", Value = profile.CancellationNotice }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@Address", Value = profile.LocationSettings.Address }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@Address2", Value = profile.LocationSettings.SecondAddress }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@City", Value = profile.LocationSettings.City }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@CountryId", Value = profile.LocationSettings.Country.Id }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@Phone", Value = profile.Phone }); cmd.Parameters.Add(new SqlParameter() { ParameterName = "@DOB", Value = profile.DOB.HasValue ? (profile.DOB.Value).ToString("yyyy-MM-dd") : null }); //cmd.Parameters.Add(new SqlParameter() //{ // ParameterName = "@TravelRadius", // Value = 8 //}); con.Open(); cmd.ExecuteNonQuery(); } return profile; }