コード例 #1
0
        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;
                }
            }
        }