/// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
 /// <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)));
     }
 }
Esempio n. 6
0
        /// <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);
        }
Esempio n. 8
0
        /// <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);
        }
Esempio n. 9
0
 /// <summary>
 /// 建構子
 /// </summary>
 public QueryOption()
 {
     Extand = new GenericExtand();
 }