private void ImportConfigurations(OleDbConnection cn) { var sql = @"SELECT TBL_CONFIGURATION.* FROM TBL_CONFIGURATION;"; var mailConfigs = new List <MailConfiguration>(); using (var cmd = new OleDbCommand(sql, cn)) { using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { var config = new MailConfiguration(); config.Name = reader.ValueOrDefault <string>("Config_Name", ""); config.Server = reader.ValueOrDefault <string>("SMTP_SERVER", ""); config.Port = Convert.ToInt32(reader.ValueOrDefault <string>("SMTP_SERVER_PORT", "25")); // 25 is a default port for email config.Active = reader.ValueOrDefault <bool>("ACTIVE", false); config.UserName = reader.ValueOrDefault <string>("SENDUSERNAME", ""); config.Password = reader.ValueOrDefault <string>("SENDPASSWORD", ""); mailConfigs.Add(config); } } } var existingConfigProfiles = this.messageRepo.GetEmailConfigurationProfiles(); foreach (var config in mailConfigs) { if (!existingConfigProfiles.Any(p => p.Name == config.Name)) { var configProfile = new EmailConfigurationProfile { Name = config.Name, Server = config.Server, Port = config.Port }; var savedConfig = this.messageRepo.SaveEmailConfigurationProfiles(configProfile); config.EmailConfigurationProfileId = savedConfig.Id; } } // get the updated list after adding the church's existingConfigProfiles = this.messageRepo.GetEmailConfigurationProfiles(); var defaultConfig = mailConfigs.FirstOrDefault(ec => ec.Active == true); if (defaultConfig != null) { var configProfile = existingConfigProfiles.FirstOrDefault(c => c.Id == defaultConfig.EmailConfigurationProfileId); if (configProfile != null) { // save this config for this church var emailConfig = new EmailConfiguration { ChurchId = this.church.id, EmailConfigProfileId = configProfile.Id, UserName = defaultConfig.UserName, Password = defaultConfig.Password }; this.messageRepo.SaveEmailConfiguration(emailConfig); } } }
public List <EmailConfigurationProfile> GetEmailConfigurationProfiles() { var proc = "GetEmailConfigurationProfiles"; var paramz = new List <SqlParameter>(); Func <SqlDataReader, EmailConfigurationProfile> readFx = (reader) => { var item = new EmailConfigurationProfile(); item.Id = reader.ValueOrDefault <int>("Id"); item.Name = reader.ValueOrDefault <string>("Name"); item.Server = reader.ValueOrDefault <string>("Server"); item.Port = reader.ValueOrDefault <int>("Port"); return(item); }; var list = this.executor.ExecuteSql <EmailConfigurationProfile>(proc, CommandType.StoredProcedure, paramz, readFx); return(list); }
public EmailConfigurationProfile SaveEmailConfigurationProfiles(EmailConfigurationProfile emailConfiguration) { var proc = "SaveEmailConfigurationProfiles"; var paramz = new List <SqlParameter>(); paramz.Add(new SqlParameter("Name", emailConfiguration.Name)); paramz.Add(new SqlParameter("Server", emailConfiguration.Server)); paramz.Add(new SqlParameter("Port", emailConfiguration.Port)); Func <SqlDataReader, int> readFx = (reader) => { return(reader.ValueOrDefault <int>("Id")); }; var list = this.executor.ExecuteSql <int>(proc, CommandType.StoredProcedure, paramz, readFx); emailConfiguration.Id = list.FirstOrDefault(); return(emailConfiguration); }