private static void Init(IInfo info) { //var dynamicInfo = info as dynamic; //var TableName = dynamicInfo.DataAccess.TableName; var TableName = info.GetValue("DataAccess").GetValue("TableName"); //var db = dynamicInfo.DataAccess.db as Database; var db = info.GetValue("DataAccess").GetValue("db") as Database; var cities = City.Cities; if (info is Recruit) { var sqlQuery = "select JobType,CityId, COUNT(*) Total from Info_Recruit group by JobType,CityId"; DbCommand cmd = db.GetSqlStringCommand(sqlQuery); DataTable dt = db.ExecuteDataSet(cmd).Tables[0]; var recruit = info as Recruit; foreach (var t in Enum.GetValues(typeof(JobType))) { var jobType = (JobType)t; recruit.InfoCount[jobType] = new Dictionary <int, int>(); foreach (var city in cities) { var dic = recruit.InfoCount[jobType]; dic[city.Id] = 0; } } foreach (DataRow dr in dt.Rows) { var jobType = (JobType)Convert.ToInt32(dr["JobType"]); var cityId = Convert.ToInt32(dr["CityId"]); var total = Convert.ToInt32(dr["Total"]); recruit.InfoCount[jobType][cityId] = total; } } else if (info is JobSeek) { var sqlQuery = "select JobType,CityId, COUNT(*) Total from Info_JobSeek group by JobType,CityId"; DbCommand cmd = db.GetSqlStringCommand(sqlQuery); DataTable dt = db.ExecuteDataSet(cmd).Tables[0]; var job = info as JobSeek; foreach (var t in Enum.GetValues(typeof(JobType))) { var jobType = (JobType)t; job.InfoCount[jobType] = new Dictionary <int, int>(); foreach (var city in cities) { var dic = job.InfoCount[jobType]; dic[city.Id] = 0; } } foreach (DataRow dr in dt.Rows) { var jobType = (JobType)Convert.ToInt32(dr["JobType"]); var cityId = Convert.ToInt32(dr["CityId"]); var total = Convert.ToInt32(dr["Total"]); job.InfoCount[jobType][cityId] = total; } } else if (info is YellowPage) { var sqlQuery = "select YellowPageType,CityId, COUNT(*) Total from Info_YellowPage group by YellowPageType,CityId"; DbCommand cmd = db.GetSqlStringCommand(sqlQuery); DataTable dt = db.ExecuteDataSet(cmd).Tables[0]; var yp = info as YellowPage; foreach (var t in Enum.GetValues(typeof(YellowPageType))) { var yellowPageType = (YellowPageType)t; yp.InfoCount[yellowPageType] = new Dictionary <int, int>(); foreach (var city in cities) { var dic = yp.InfoCount[yellowPageType]; dic[city.Id] = 0; } } foreach (DataRow dr in dt.Rows) { var yellowPageType = (YellowPageType)Convert.ToInt32(dr["YellowPageType"]); var cityId = Convert.ToInt32(dr["CityId"]); var total = Convert.ToInt32(dr["Total"]); yp.InfoCount[yellowPageType][cityId] = total; } } else { var sqlQuery = "select CityId,COUNT(*) Total from " + TableName + " group by CityId"; DbCommand cmd = db.GetSqlStringCommand(sqlQuery); DataTable dt = db.ExecuteDataSet(cmd).Tables[0]; foreach (var city in cities) { info.InfoCount[city.Id] = 0; } foreach (DataRow dr in dt.Rows) { var cityId = Convert.ToInt32(dr["CityId"]); var total = Convert.ToInt32(dr["Total"]); info.InfoCount[cityId] = total; } } }