Exemplo n.º 1
0
        public void UpdateKPIType(T_HR_KPITYPE entType, List <T_HR_KPIREMIND> addList, List <T_HR_KPIREMIND> updateList, List <T_HR_KPIREMIND> delList, ref string strMsg)
        {
            try
            {
                //实体不存在
                if (entType == null)
                {
                    //  throw new Exception("{REQUIREDFIELDS}");
                    strMsg = "{REQUIREDFIELDS}";
                    return;
                }
                //评分方式不存在
                if (entType.T_HR_SCORETYPE == null)
                {
                    // throw new Exception("{KPITYPEREQUIREDFIELDS}");
                    strMsg = "{KPITYPEREQUIREDFIELDS}";
                    return;
                }

                //更新KPI类别信息
                var ents = from ent in dal.GetObjects <T_HR_KPITYPE>()
                           where ent.KPITYPEID == entType.KPITYPEID
                           select ent;
                if (ents.Count() > 0)
                {
                    //edm = this.DataContext;
                    // 1s 冉龙军
                    //edm.Connection.Open();
                    //if (edm.Connection.State == System.Data.ConnectionState.Closed)
                    //{
                    //    edm.Connection.Open();
                    //}
                    //// 1e
                    //tran = edm.Connection.BeginTransaction();

                    //更新KPI类别信息和评分方式
                    var ent = ents.FirstOrDefault();

                    //更新KPI类别信息
                    Utility.CloneEntity(entType, ent);
                    //Utility.RefreshEntity(ent);
                    dal.UpdateFromContext(ent);
                    dal.SaveContextChanges();
                    //更新评分方式
                    var scoreTypes = from sco in dal.GetObjects <T_HR_SCORETYPE>()
                                     where sco.SCORETYPEID == entType.T_HR_SCORETYPE.SCORETYPEID
                                     select sco;
                    if (scoreTypes.Count() > 0)
                    {
                        T_HR_SCORETYPE scoreType = scoreTypes.FirstOrDefault();
                        Utility.CloneEntity <T_HR_SCORETYPE>(entType.T_HR_SCORETYPE, scoreType);
                        // 1s 冉龙军
                        //ent.T_HR_SCORETYPE.T_HR_RANDOMGROUPReference.EntityKey = new System.Data.EntityKey(qualifiedEntitySetName + "T_HR_RANDOMGROUP",
                        //    "RANDOMGROUPID", entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP.RANDOMGROUPID);
                        if (entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP != null)
                        {
                            //Utility.CloneEntity<T_HR_RANDOMGROUP>(entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP, ent.T_HR_SCORETYPE.T_HR_RANDOMGROUP);

                            scoreType.T_HR_RANDOMGROUPReference.EntityKey = new System.Data.EntityKey(qualifiedEntitySetName + "T_HR_RANDOMGROUP",
                                                                                                      "RANDOMGROUPID", entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP.RANDOMGROUPID);
                        }
                        //Utility.RefreshEntity(scoreType);
                        dal.Update(scoreType);
                        if (entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP != null)
                        {
                            string strSql = @" update T_HR_SCORETYPE set RANDOMGROUPID ='" + entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP.RANDOMGROUPID + "'";

                            dal.ExecuteCustomerSql(strSql);
                        }
                        else
                        {
                            string strSql = @" update T_HR_SCORETYPE set RANDOMGROUPID =''";
                            dal.ExecuteCustomerSql(strSql);
                        }
                    }


                    // 1e
                    //Utility.RefreshEntity(entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP);

                    //Utility.CloneEntity<T_HR_RANDOMGROUP>(entType.T_HR_SCORETYPE.T_HR_RANDOMGROUP, ent.T_HR_SCORETYPE.T_HR_RANDOMGROUP);

                    #region 更新提醒信息

                    //增加提醒信息
                    if (addList != null && addList.Count > 0)
                    {
                        foreach (T_HR_KPIREMIND remind in addList)
                        {
                            var tempEnt = dal.GetObjects <T_HR_KPIREMIND>().FirstOrDefault(s => s.REMINDID == remind.REMINDID);
                            if (tempEnt == null)
                            {
                                //添加提醒信息
                                //ent.T_HR_SCORETYPE.T_HR_KPIREMIND.Add(remind);
                                //断开外键
                                Utility.RefreshEntity(remind);
                                //添加提醒信息
                                dal.AddToContext(remind);
                                //this.DataContext.AddObject("T_HR_KPIREMIND", remind);
                            }
                        }
                    }


                    //删除提醒信息
                    if (delList != null && delList.Count > 0)
                    {
                        foreach (T_HR_KPIREMIND remind in delList)
                        {
                            var tempEnt = dal.GetObjects <T_HR_KPIREMIND>().FirstOrDefault(s => s.REMINDID == remind.REMINDID);
                            if (tempEnt != null)
                            {
                                //断开外键
                                Utility.RefreshEntity(tempEnt);
                                //删除提醒信息
                                //ent.T_HR_SCORETYPE.T_HR_KPIREMIND.Remove(remind);
                                //dal.Delete(remind);
                                dal.DeleteFromContext(remind);
                                //this.DataContext.DeleteObject(tempEnt);
                            }
                        }
                    }

                    //更新提醒信息
                    if (updateList != null && updateList.Count > 0)
                    {
                        foreach (T_HR_KPIREMIND remind in updateList)
                        {
                            var ress = from re in dal.GetObjects <T_HR_KPIREMIND>()
                                       where re.REMINDID == remind.REMINDID
                                       select re;
                            if (ress.Count() > 0)
                            {
                                var re = ress.FirstOrDefault();
                                Utility.CloneEntity(remind, re);
                                dal.UpdateFromContext(re);
                            }

                            //foreach (T_HR_KPIREMIND re in ent.T_HR_SCORETYPE.T_HR_KPIREMIND)
                            //{
                            //    if (remind.REMINDID.Equals(re.REMINDID))
                            //    {
                            //        //更新KPI类别信息
                            //        Utility.CloneEntity(remind, re);
                            //        break;
                            //    }

                            //}
                            //var tempEnt = DataContext.T_HR_KPIREMIND.FirstOrDefault(s => s.REMINDID == remind.REMINDID);
                            //if (tempEnt != null)
                            //{
                            //    //更新提醒信息
                            //    Utility.CloneEntity<T_HR_KPIREMIND>(tempEnt, remind);
                            //}
                        }
                    }

                    #endregion 更新提醒信息

                    //统一提交
                    dal.SaveContextChanges();
                    //DataContext.SaveChanges();

                    //tran.Commit();
                }
            }
            catch (Exception ex)
            {
                SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + " UpdateKPITypes:" + ex.Message);
                //if (tran != null)
                //    tran.Rollback();
                //throw ex;
            }
            finally
            {
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 增加KPI类别信息和评分方式
        /// </summary>
        /// <param name="entity">KPI类别实体.评分方式</param>
        public void AddKPIType(T_HR_KPITYPE entTemp, ref string strMsg)
        {
            try
            {
                // 1s 冉龙军
                //DataContext.Connection.Open();
                //if (  DataContext.Connection.State == System.Data.ConnectionState.Closed)
                //{
                //    DataContext.Connection.Open();
                //}
                //// 1e
                //tran = DataContext.Connection.BeginTransaction();
                dal.BeginTransaction();
                //实体不存在
                if (entTemp == null)
                {
                    //  throw new Exception("{REQUIREDFIELDS}");
                    strMsg = "{REQUIREDFIELDS}";
                    return;
                }

                //评分方式不存在
                if (entTemp.T_HR_SCORETYPE == null)
                {
                    // throw new Exception("{KPITYPEREQUIREDFIELDS}");
                    strMsg = "{KPITYPEREQUIREDFIELDS}";
                    return;
                }

                //保存评分方式
                T_HR_SCORETYPE score     = entTemp.T_HR_SCORETYPE;
                var            scoreType = dal.GetObjects <T_HR_SCORETYPE>().FirstOrDefault(s => s.SCORETYPEID == score.SCORETYPEID);
                if (scoreType != null)
                {
                    // throw new Exception("Repetition");
                    strMsg = "评分方式重复";
                    return;
                }
                T_HR_SCORETYPE entST = new T_HR_SCORETYPE();
                Utility.CloneEntity <T_HR_SCORETYPE>(score, entST);
                if (score.T_HR_RANDOMGROUP != null)
                {
                    entST.T_HR_RANDOMGROUPReference.EntityKey = new System.Data.EntityKey(qualifiedEntitySetName + "T_HR_RANDOMGROUP",
                                                                                          "RANDOMGROUPID", score.T_HR_RANDOMGROUP.RANDOMGROUPID);
                }
                Utility.RefreshEntity(entST);

                //保存提醒信息
                if (score.T_HR_KPIREMIND != null)
                {
                    List <T_HR_KPIREMIND> remindList = score.T_HR_KPIREMIND.ToList();
                    foreach (T_HR_KPIREMIND remind in remindList)
                    {
                        entST.T_HR_KPIREMIND.Add(remind);
                        Utility.RefreshEntity(remind);
                    }
                }

                //保存KPI点信息
                var tempEnt = dal.GetObjects <T_HR_KPITYPE>().FirstOrDefault(s => s.KPITYPEID == entTemp.KPITYPEID);
                if (tempEnt != null)
                {
                    //  throw new Exception("Repetition");
                    strMsg = "KPI点信息重复";
                }
                T_HR_KPITYPE ent = new T_HR_KPITYPE();
                Utility.CloneEntity <T_HR_KPITYPE>(entTemp, ent);
                //更新KPI点的外键关联
                ent.T_HR_SCORETYPE = entST;
                Utility.RefreshEntity(ent);
                dal.Add(entST);

                //提交事务
                dal.CommitTransaction();
            }
            catch (Exception ex)
            {
                dal.RollbackTransaction();
                SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + " AddKPIType:" + ex.Message);
                strMsg = ex.Message;
            }
            finally
            {
            }
        }