using System;
using System.Collections.Generic;
using System.Configuration;
using System.Text;
using log4net;
namespace xt {
public class AppConfigHelper {
private static ILog log = LogManager.GetLogger(typeof (AppConfigHelper));
public static int? Get(string key, int? defaultValue) {
string s = ConfigurationManager.AppSettings[key];
if (string.IsNullOrEmpty(s)) {
log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
} else {
int v;
if (!int.TryParse(s, out v)) {
log.WarnFormat("The key {1} is not properly configured, using default: {0}", defaultValue, key);
} else {
defaultValue = v;
log.InfoFormat("Get: {0}={1}", key, defaultValue);
}
}
return defaultValue;
}
public static bool? Get(string key, bool? defaultValue) {
string s = ConfigurationManager.AppSettings[key];
if (string.IsNullOrEmpty(s)) {
log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
} else {
bool v;
if (!bool.TryParse(s, out v)) {
log.WarnFormat("The key {1} is not properly configured, using default: {0}", defaultValue, key);
} else {
defaultValue = v;
log.InfoFormat("Get: {0}={1}", key, defaultValue);
}
}
return defaultValue;
}
public static T GetEnum<T>(string key, T defaultValue) {
string s = ConfigurationManager.AppSettings[key];
if (string.IsNullOrEmpty(s)) {
log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
return defaultValue;
} else {
T v = (T) Enum.Parse(typeof (T), s);
log.InfoFormat("Get: {0}={1}", key, defaultValue);
return v;
}
}
public static string Get(string key, string defaultValue) {
string s = ConfigurationManager.AppSettings[key];
if (string.IsNullOrEmpty(s)) {
log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
return defaultValue;
}
log.InfoFormat("Get: {0}={1}", key, s);
return s;
}
public static DateTime Get(string key, DateTime defaultValue) {
string s = ConfigurationManager.AppSettings[key];
if (string.IsNullOrEmpty(s)) {
log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
return defaultValue;
}
DateTime result;
if(!DateTime.TryParse(s, out result)) {
log.WarnFormat("The key {0} is not properly configured, using default: {1} isntead of {3}", key, defaultValue, s);
return defaultValue;
}
log.InfoFormat("Get: {0}={1}", key, s);
return result;
}
public static TimeSpan Get(string key, TimeSpan defaultValue) {
string s = ConfigurationManager.AppSettings[key];
if (string.IsNullOrEmpty(s)) {
log.WarnFormat("The key {1} is not configured, using default: {0}", defaultValue, key);
return defaultValue;
}
TimeSpan result;
if (!TimeSpan.TryParse(s, out result)) {
log.WarnFormat("The key {0} is not properly configured, using default: {1} isntead of {3}", key, defaultValue, s);
return defaultValue;
}
log.InfoFormat("Get: {0}={1}", key, s);
return result;
}
}