コード例 #1
0
        public async Task UpdateConfiguration(SmtpConfiguration configuration)
        {
            PropertyInfo[] props = configuration.GetType().GetProperties();
            foreach (var prop in props)
            {
                Config config = context.Configs.Where(x => x.Key == prop.Name).FirstOrDefault();
                if (config == null)
                {
                    config = new Config
                    {
                        Key   = prop.Name,
                        Value = (string)prop.GetValue(configuration)
                    };
                    context.Configs.Add(config);
                }
                else
                {
                    config.Value = (string)prop.GetValue(configuration);
                    context.Configs.Update(config);
                }
            }

            bool connected = SmtpHelper.TestConnection(configuration.Host, int.Parse(configuration.Port));

            if (!connected)
            {
                throw new FormMgrException("Smtp connection failed. Please enter a valid configuration.");
            }

            await context.SaveChangesAsync();
        }