public static List <BaseAggConfig> Create(DataTable dt) { List <BaseAggConfig> configs = new List <BaseAggConfig>(); if (dt == null) { return(configs); } int id = 0; foreach (DataRow dr in dt.Rows) { try { id = Convert.ToInt32(dr["Id"]); AggType type; AggWay way; if (!AggType.TryParse(Convert.ToString(dr["AggTypeId"]), out type)) { log.WarnFormat("create config failed,aggtype wrong.ConfigId:{0}", id); continue; } if (!AggWay.TryParse(Convert.ToString(dr["AggWayId"]), out way)) { log.WarnFormat("create config failed,aggway wrong.ConfigId:{0}", id); continue; } AggTaskKey key = new AggTaskKey(Convert.ToInt32(dr["StructureId"]), Convert.ToInt32(dr["FacotrId"]), type); BaseAggConfig config = new BaseAggConfig(key); config.TimeRange = new AggTimeRange { DataBeginHour = Convert.ToInt32(dr["DataBeginHour"]), DataEndHour = Convert.ToInt32(dr["DataEndHour"]), //DateBegin = Convert.ToInt32(dr["DateBegin"]), //DateEnd = Convert.ToInt32(dr["DateEnd"]) }; if (dr["DateBegin"].ToString() != string.Empty) { config.TimeRange.DateBegin = Convert.ToInt32(dr["DateBegin"]); } if (dr["DateEnd"].ToString() != string.Empty) { config.TimeRange.DateEnd = Convert.ToInt32(dr["DateEnd"]); } config.TimingMode = Convert.ToString(dr["TimeMode"]); config.Way = way; config.ConfigId = id; configs.Add(config); } catch (Exception e) { log.WarnFormat("create config error,configId:{0},error:{1},trace:{2}", id, e.Message, e.StackTrace); continue; } } return(configs); }
public static IAggProcess GetAggProcess(AggWay way) { IAggProcess process = null; if (processes.ContainsKey(way)) { processes.TryGetValue(way, out process); } else { process = CreateAggProcess(way); if (process != null) { processes.TryAdd(way, process); } } return(process); }
private static IAggProcess CreateAggProcess(AggWay way) { IAggProcess iProcess = null; if (!processTypes.ContainsKey(way.ToString())) { iProcess = null; return(iProcess); } Type type = processTypes[way.ToString()]; try { iProcess = Activator.CreateInstance(type) as IAggProcess; } catch (Exception e) { Log.ErrorFormat("create aggprocess failed, type:{0},error:{1},stacktrace{2}", way.ToString(), e.Message, e.StackTrace); } return(iProcess); }