/// <summary> /// 檢核資料 /// </summary> /// <param name="data">檢核資料</param> /// <param name="_event">執行方法</param> public CheckDataAbstract(IEnumerable <T> data, Check_Table_Type _event, DateTime?reportDate = null, int?version = null) { this._data = data; this._event = _event; this._resources = new Dictionary <Check_Table_Type, Func <List <messageTable> > >(); _customerStr_Start = string.Empty; _customerStr_End = string.Empty; Set(); try { StringBuilder sb = new StringBuilder(); if (reportDate.HasValue && version.HasValue) { sb.AppendLine($@"報導日:{reportDate.Value.ToString("yyyy/MM/dd")} 版本:{version}"); } sb.AppendLine(getCheckMessage(GetMethod(_event).Invoke())); this.Message = sb.ToString(); Tuple <Check_Table_Type, string> cacheData = new Tuple <Check_Table_Type, string>(_event, Message); ErrorFlag = _checkFlag; var Cache = new Repository.DefaultCacheProvider(); Cache.Invalidate($@"{CacheList.CheckData}{_event.ToString()}"); Cache.Set($@"{CacheList.CheckData}{_event.ToString()}", cacheData); } catch (Exception ex) { this.Message = ex.exceptionMessage(); } }
/// <summary> /// 找尋要執行的程式 /// </summary> /// <param name="_event"></param> /// <returns></returns> private Func <List <messageTable> > GetMethod(Check_Table_Type _event) { if (_resources.ContainsKey(_event)) { return(_resources[_event]); } else { throw new ArgumentNullException(); } }