Exemple #1
0
        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);
        }