예제 #1
0
        public static List <TR01A> ToEntity(TR01AModel master, List <TR01BModel> detailList, List <TR01A> entityList, EntityState state)
        {
            if (state == EntityState.Added)
            {
                foreach (TR01BModel item in detailList)
                {
                    var entityItem = new TR01A();
                    ToEntity(master, item, ref entityItem);

                    entityItem.CREATE_USER = "******";
                    entityItem.CREATE_DATE = DateTime.Now;
                    entityList.Add(entityItem);
                }
            }
            else
            {
                foreach (TR01BModel item in detailList)
                {
                    var entityItem = entityList.First(x => x.TR01A_ID == item.TR01A_ID);
                    ToEntity(master, item, ref entityItem);

                    entityItem.UPDATE_USER = "******";
                    entityItem.UPDATE_DATE = DateTime.Now;
                }
            }
            return(entityList);
        }
예제 #2
0
        /// <summary>Entity to viewmodel Single</summary>
        /// <param name="entity">TR01A</param>
        public static TR01AViewModel FromEntity(TR01A entity)
        {
            var data = new TR01AViewModel();

            if (entity != null)
            {
                var objectHelper = new ActWeis.Utility.ObjectHelper();
                objectHelper.CopyValue(entity, data);

                #region [ 資料處理 ]
                var BA01A = CacheCommonDataModule.GetBA01A().FirstOrDefault(x => x.BA01A_ID == entity.BA01A_ID);
                if (BA01A != null)
                {
                    data.FAX_NO = BA01A.FAX_NO;
                    data.ADD_DR = BA01A.ADD_DR;
                }

                var BA01B = new Services.BA01.BA01Service().GetD(x => x.BA01B_ID == entity.BA01B_ID);
                if (BA01B != null)
                {
                    data.TEL_NO = BA01B.TEL_NO;
                    data.TEL_EX = BA01B.TEL_EX;
                }
                #endregion [ 資料處理 ]
            }
            return(data);
        }
예제 #3
0
        /// <summary>寫Log的時候要先去update</summary>
        /// <param name="key">Master 的 Key</param>
        /// <returns>錯誤訊息</returns>
        public string Delete(int key)
        {
            string errMsg = "";

            using (var trans = _Entity.Database.BeginTransaction(IsolationLevel.Snapshot))
            {
                try
                {
                    _Entity.TR01B.RemoveRange(_Entity.TR01B.Where(r => r.TR01A_ID == key));
                    _Entity.SaveChanges();

                    var deleteData = new TR01A {
                        TR01A_ID = key
                    };
                    _Entity.Entry(deleteData).State = EntityState.Deleted;
                    var result = _Entity.SaveChanges();
                    trans.Commit();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    foreach (var eve in ex.EntityValidationErrors)
                    {
                        errMsg = string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            errMsg += "<br />" + string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                }
            }
            return(errMsg);
        }
예제 #4
0
        /// <summary>delete寫Log的時候要先去update</summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public ServiceResult <TR01A> Update(TR01A entity, List <TR01B> CreateD, List <TR01B> UpdateD, List <int> DeleteD)
        {
            string errMsg = "";

            using (var trans = _Entity.Database.BeginTransaction(IsolationLevel.Snapshot))
            {
                try
                {
                    //Master
                    if (entity.TR01A_ID == 0)
                    {
                        entity.PUR_NO = _Entity.Database.SqlQuery <string>("select dbo.Get_PUR_NO()").FirstOrDefault();
                        _Entity.Entry(entity).State = EntityState.Added;
                    }
                    else
                    {
                        _Entity.Entry(entity).State = EntityState.Modified;
                    }
                    _Entity.SaveChanges();

                    //detail 處理 TR01A_ID
                    foreach (var item in CreateD)
                    {
                        item.TR01A_ID             = entity.TR01A_ID;
                        _Entity.Entry(item).State = EntityState.Added;
                    }
                    foreach (var item in UpdateD)
                    {
                        item.TR01A_ID             = entity.TR01A_ID;
                        _Entity.Entry(item).State = EntityState.Modified;
                    }
                    _Entity.TR01B.RemoveRange(_Entity.TR01B.Where(r => DeleteD.Contains(r.TR01B_ID)));
                    _Entity.SaveChanges();
                    trans.Commit();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    foreach (var eve in ex.EntityValidationErrors)
                    {
                        errMsg = string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            errMsg += "<br />" + string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                }
                catch (Exception ex)
                {
                    errMsg = new MSSQL().GetSQLMessage(ex);
                }
            }
            return(new ServiceResult <TR01A>()
            {
                Data = entity, Message = errMsg
            });
        }
예제 #5
0
        /// <summary>
        /// viewmodel to entity
        /// </summary>
        /// <param name="entity"></param>
        public void ToDomain(TR01A entity)
        {
            if (entity != null)
            {
                #region [ 資料處理 ]

                #endregion [ 資料處理 ]

                var objectHelper = new ActWeis.Utility.ObjectHelper();
                objectHelper.CopyValue(this, entity);
            }
        }
예제 #6
0
 private static void ToEntity(TR01AModel master, TR01BModel detail, ref TR01A entityItem)
 {
     entityItem.TRN_DT   = master.DtTRN_DT.ToString("yyyyMMdd");
     entityItem.VOU_NO   = master.VOU_NO;
     entityItem.BA02A_ID = master.BA02A_ID;
     entityItem.BA02B_ID = master.BA02B_ID;
     entityItem.BA03A_ID = master.BA03A_ID;
     entityItem.DA03A_ID = master.DA03A_ID;
     entityItem.BA01A_ID = detail.BA01A_ID;
     entityItem.CRE_MY   = detail.CRE_MY;
     entityItem.DEB_MY   = detail.DEB_MY;
     entityItem.SUM_RM   = detail.SUM_RM;
 }
예제 #7
0
        public static TR01AModel FromEntity(TR01A entity, PURSysEntities entityConnection)
        {
            var data = new TR01AModel();

            if (entity != null)
            {
                var objectHelper = new ActWeis.Utility.ObjectHelper();
                objectHelper.CopyValue(entity, data);
            }

            var result = entityConnection.Database.SqlQuery <int>($"select dbo.Get_Not_Receive_Count({entity.TR01A_ID})").FirstOrDefault();

            data.IsAllReceive = result == 0;
            return(data);
        }
예제 #8
0
        /// <summary>viewmodel to entity </summary>
        /// <param name="entity"></param>
        private static TR01A ToEntity(TR01AViewModel data)
        {
            var entity = new TR01A();

            if (data != null)
            {
                #region [ 資料處理 ]

                #endregion [ 資料處理 ]

                var objectHelper = new ActWeis.Utility.ObjectHelper();
                objectHelper.CopyValue(data, entity);
            }
            return(entity);
        }
예제 #9
0
        /// <summary>
        /// entity to viewmodel
        /// </summary>
        /// <param name="entity"></param>
        public void FromDomain(TR01A entity)
        {
            if (entity != null)
            {
                var objectHelper = new ActWeis.Utility.ObjectHelper();
                objectHelper.CopyValue(entity, this);

                #region [ 資料處理 ]
                var BA01A = CacheCommonDataModule.GetBA01A().FirstOrDefault(x => x.BA01A_ID == this.BA01A_ID);
                if (BA01A != null)
                {
                    this.ADD_DR = BA01A.ADD_DR;
                    this.FAX_NO = BA01A.FAX_NO;
                }
                #endregion [ 資料處理 ]
            }
        }
예제 #10
0
        /// <summary>刪除上下檔</summary>
        /// <param name="key">Master 的 Key</param>
        /// <returns>被trigger擋下=> 取回資料, 被其他人刪單=> new TR01A</returns>
        public ServiceResult <TR01A> Delete(int key)
        {
            string errMsg = "";
            var    master = _Entity.TR01A.FirstOrDefault(x => x.TR01A_ID == key);

            using (var trans = _Entity.Database.BeginTransaction(IsolationLevel.Snapshot))
            {
                try
                {
                    if (master != null && master.TR01A_ID > 0)
                    {
                        _Entity.TR01B.RemoveRange(_Entity.TR01B.Where(r => r.TR01A_ID == key));
                        _Entity.SaveChanges();
                        _Entity.TR01A.Remove(master);
                        _Entity.SaveChanges();
                    }
                    else
                    {
                        errMsg = "已被其他使用者刪除";
                        master = new TR01A();
                    }
                    trans.Commit();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    foreach (var eve in ex.EntityValidationErrors)
                    {
                        errMsg = string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            errMsg += "<br />" + string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                }
                catch (Exception ex)
                {
                    errMsg = new MSSQL().GetSQLMessage(ex);
                }
            }
            return(new ServiceResult <TR01A>()
            {
                Data = master, Message = errMsg
            });
        }
예제 #11
0
        public ServiceResult <TR01A> Update(TR01A entity)
        {
            var errMsg = "";

            using (var trans = _Entity.Database.BeginTransaction(IsolationLevel.Snapshot))
            {
                try
                {
                    if (entity.TR01A_ID == 0)
                    {
                        _Entity.Entry(entity).State = EntityState.Added;
                    }
                    else
                    {
                        _Entity.Entry(entity).State = EntityState.Modified;
                    }
                    var result = _Entity.SaveChanges();
                    trans.Commit();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    foreach (var eve in ex.EntityValidationErrors)
                    {
                        errMsg = string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            errMsg += "<br />" + string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                }
                catch (Exception ex)
                {
                    errMsg = new MSSQL().GetSQLMessage(ex);
                }
            }
            return(new ServiceResult <TR01A>()
            {
                Data = entity, Message = errMsg
            });
        }
예제 #12
0
        private TR01A MasterToEntity(TR01AViewModel master)
        {
            var TR01A = new TR01A();

            if (master.TR01A_ID == 0)//Adding New
            {
                master.CREATE_USER = "******";
                master.CREATE_DATE = DateTime.Now;
                master.PUR_NO      = new PURSysEntities().Database.SqlQuery <string>("select dbo.Get_PUR_NO()").FirstOrDefault();
                master.ToDomain(TR01A);
            }
            else//Update
            {
                TR01A = _Service.GetM(master.TR01A_ID);
                master.CREATE_USER = TR01A.CREATE_USER;
                master.CREATE_DATE = TR01A.CREATE_DATE;
                master.UPDATE_USER = "******";
                master.UPDATE_DATE = DateTime.Now;
                master.ToDomain(TR01A);
            }
            return(TR01A);
        }
예제 #13
0
 public TR01AViewModel(TR01A entity)
 {
     this.FromDomain(entity);
 }
예제 #14
0
        /// <summary>delete寫Log的時候要先去update</summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public ServiceResult <TR01A> Update(TR01A entity, List <TR01B> CreateD, List <TR01B> UpdateD, List <int> DeleteD)
        {
            string errMsg = "";

            using (var trans = _Entity.Database.BeginTransaction(IsolationLevel.Snapshot))
            {
                try
                {
                    //Master
                    if (entity.TR01A_ID == 0)
                    {
                        _Entity.Entry(entity).State = EntityState.Added;
                    }
                    else
                    {
                        _Entity.Entry(entity).State = EntityState.Modified;
                    }
                    _Entity.SaveChanges();

                    //detail 處理 TR01A_ID
                    foreach (var item in CreateD)
                    {
                        item.TR01A_ID             = entity.TR01A_ID;
                        _Entity.Entry(item).State = EntityState.Added;
                    }
                    foreach (var item in UpdateD)
                    {
                        item.TR01A_ID             = entity.TR01A_ID;
                        _Entity.Entry(item).State = EntityState.Modified;
                    }
                    //要先update delete的資料
                    foreach (var key in DeleteD)
                    {
                        var deleteData = new TR01B {
                            TR01B_ID = key
                        };
                        _Entity.Entry(deleteData).State = EntityState.Deleted;
                    }
                    _Entity.SaveChanges();
                    trans.Commit();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                {
                    foreach (var eve in ex.EntityValidationErrors)
                    {
                        errMsg = string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            errMsg += "<br />" + string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                }
                catch (Exception ex)
                {
                    errMsg = ex.Message;
                }
            }
            return(new ServiceResult <TR01A>()
            {
                Data = entity, Message = errMsg
            });
        }