/// <summary> /// 物件資料處理 /// </summary> /// <param name="type">處理類型</param> /// <param name="user">使用者資料</param> /// <param name="data">實體資料</param> /// <param name="parameters">非實體屬性之參數資料</param> /// <param name="file">是否搬移檔案</param> /// <param name="isUser">是否需設定登入使用者</param> /// <param name="extand">擴展資訊</param> public T Modify(string type, UserLogin user, T data, object parameters = null, bool file = false, bool isUser = false, GenericExtand extand = null) { //使用者資料 if (isUser) { SetLoginUser(data, user.USERID, user.ORG_SN); } if (extand == null) { extand = new GenericExtand(); } //物件資料處理 ModifyBefore(extand.Before, data, user); var output = _dao.Modify(type, data, parameters, extand); //檔案搬移 if (file) { FileMove(data); } ModifyAfter(extand.Method, output, user); return(output); }
/// <summary> /// 物件資料處理 (By SQL) /// </summary> /// <param name="type">處理類型</param> /// <param name="data">實體資料</param> /// <param name="extand">擴展資訊</param> public T ModifyBySql(string type, T data, GenericExtand extand = null) { var context = ModifyContextFactory.CreateInstance <T>(extand); var output = context.ModifyBySql(type, data).Item1; ModifyAfter(extand, output); return(output); }
/// <summary> /// 物件資料處理 /// </summary> /// <param name="type">處理類型</param> /// <param name="data">實體資料</param> /// <param name="parameters">非實體屬性之參數資料</param> /// <param name="extand">擴展資訊</param> public T Modify(string type, T data, object parameters = null, GenericExtand extand = null) { var context = ModifyContextFactory.CreateInstance <T>(extand); var output = context.Modify(type, data, parameters).Item1; ModifyAfter(extand, output); return(output); }
/// <summary> /// 物件集合處理 (By SQL) /// </summary> /// <param name="type">處理類型</param> /// <param name="list">實體集合</param> /// <param name="extand">擴展資訊</param> public IEnumerable <T> ModifyListBySql(string type, IEnumerable <T> list, GenericExtand extand = null) { var context = ModifyContextFactory.CreateInstance <T>(extand); var output = context.ModifyListBySql(type, list).Item1; ModifyListAfter(extand, output); return(output); }
/// <summary> /// 實體查詢物件取得 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="extand">擴展資訊</param> public static ModifyContext <T> CreateInstance <T>(GenericExtand extand) where T : class { if (extand == null || string.IsNullOrEmpty(extand.Model)) { return(CreateInstance <T>(ConnectionType.Default)); } else { return(CreateInstance <T>((ConnectionType)Enum.Parse(typeof(ConnectionType), extand.Model))); } }
/// <summary> /// 物件集合處理之後動作 /// </summary> /// <param name="extand">擴展資訊</param> /// <param name="data">物料資料</param> private void ModifyListAfter(GenericExtand extand, IEnumerable <T> data) { if (extand == null || string.IsNullOrEmpty(extand.Method)) { return; } MethodInfo method = GetType().GetMethod(extand.Method, BindingFlags.Instance | BindingFlags.Public); if (method != null) { method.Invoke(this, new object[] { data }); } }
/// <summary> /// 物件集合處理 (By SQL) /// </summary> /// <param name="type">處理類型</param> /// <param name="user">使用者資料</param> /// <param name="list">實體集合</param> /// <param name="file">是否搬移檔案</param> /// <param name="isUser">是否需設定登入使用者</param> /// <param name="extand">擴展資訊</param> public IEnumerable <T> ModifyListBySql(string type, UserLogin user, IEnumerable <T> list, bool file = false, bool isUser = false, GenericExtand extand = null) { //使用者資料 if (isUser) { foreach (T data in list) { SetLoginUser(data, user.USERID, user.ORG_SN); } } //資料修改 ModifyListBefore(extand.Before, list, user); var output = _dao.ModifyListBySql(type, list, extand); //檔案搬移 if (file) { FileMove(list); } ModifyListAfter(extand.Method, output, user); return(output); }
/// <summary> /// 物件集合處理 /// </summary> /// <param name="type">處理類型</param> /// <param name="data">實體資料</param> /// <param name="list">實體集合</param> /// <param name="parameters">非實體屬性之參數資料</param> /// <param name="extand">擴展資訊</param> public IEnumerable <T> ModifyList(string type, IEnumerable <T> list, T data = null, object parameters = null, GenericExtand extand = null) { var context = ModifyContextFactory.CreateInstance <T>(extand); var output = context.ModifyList(type, list, data, parameters).Item1; ModifyListAfter(extand, output); return(output); }
/// <summary> /// 建構子 /// </summary> public QueryOption() { Extand = new GenericExtand(); }