public List<string> SetOptInData(OptIn optIn, string sourceCode) { log4net.Config.XmlConfigurator.Configure(); AuditTrail auditTrail = new AuditTrail(); List<string> errors = null; HCPIndividual hcp; QuestionResponseSet questionResponseSet; RegistrationManager regMgr; EmailManager emailMgr; try { errors = Validate(optIn); if (errors.Count > 0) return errors; if (Services.ServiceIsAvailable) { EmailAddress emailAddress = new EmailAddress(optIn.Email.Email); hcp = new HCPIndividual(String.Empty, optIn.Name.FName, optIn.Name.LName, String.Empty, emailAddress); string sourceMCC = string.Empty; if (!string.IsNullOrWhiteSpace(sourceCode) && !string.Equals(sourceCode, "0")) { sourceMCC = sourceCode; } else { sourceMCC = Convert.ToString(ConfigurationManager.AppSettings["MCCRegister"]); } regMgr = new RegistrationManager(); regMgr.Individual = hcp; List<QuestionResponse> questionResponses = new List<QuestionResponse>(); QuestionResponse questionResponse = new QuestionResponse(Int32.Parse(ConfigurationManager.AppSettings["RTIDExitMCC"]), Int32.Parse(ConfigurationManager.AppSettings["RTIDAnsOpen"]),ConfigurationManager.AppSettings["MCCRegister"]); questionResponses.Add(questionResponse); Configuration config = WebConfigurationManager.OpenWebConfiguration(System.Web.HttpContext.Current.Request.ApplicationPath+"/Unsubscribe/"); KeyValueConfigurationElement Appsetting = config.AppSettings.Settings["RTWebSiteID"]; questionResponse = new QuestionResponse(Int32.Parse(ConfigurationManager.AppSettings["RTIDSourceMCC"]), Int32.Parse(ConfigurationManager.AppSettings["RTIDAnsOpen"]), sourceMCC); questionResponses.Add(questionResponse); questionResponse = new QuestionResponse(Int32.Parse(ConfigurationManager.AppSettings["RTIDHCPOptIn"]), Int32.Parse(ConfigurationManager.AppSettings["RTIDAnsYes"])); questionResponses.Add(questionResponse); questionResponseSet = new QuestionResponseSet(); questionResponseSet.QuestionResponses = questionResponses; regMgr.PerformLiteRegistration(hcp, questionResponseSet); if(String.Equals(regMgr.Status, "OK")) { emailMgr = new EmailManager(); emailMgr.SendEmail(Int32.Parse(ConfigurationManager.AppSettings["RTWelcomEmailMAID"]), emailAddress.EmailAddressString); } errors = GetRegMgrErrors(regMgr, errors); auditTrail.SetAuditTrail(optIn.Email.Email, AuditTrail.OperationType.OptIn_Success, "SetOptInData", regMgr.Status.ToUpper()); if (errors.Count > 0) auditTrail.SetAuditTrail(optIn.Email.Email, AuditTrail.OperationType.OptIn_errors, "SetOptInData", errors.ToString()); } else { errors.Add("The PMM services are unavailable"); } } catch (Exception e) { auditTrail.SetAuditTrail(" ", AuditTrail.OperationType.OptIn_Failure, e.Source, e.Message); throw e; } finally { hcp = null; questionResponseSet = null; regMgr = null; log.Info(auditTrail.GetAuditTrail()); auditTrail = null; } return errors; }
private List<string> Validate(OptIn optIn) { List<string> errors = new List<string>(); errors.AddRange(ValidateAddress(optIn.Address)); errors.AddRange(ValidateEmail(optIn.Email)); errors.AddRange(ValidateConfirmEmail(optIn.Email)); ValueExists("Profession", optIn.Specialty, errors); return errors; }
private List<string> Validate(OptIn optIn) { List<string> errors = new List<string>(); errors.AddRange(ValidateName(optIn.Name)); errors.AddRange(ValidateEmail(optIn.Email)); errors.AddRange(ValidateConfirmEmail(optIn.Email)); return errors; }