public DataDown DataDownSingleId(string loginKey, ref ErrorInfo err, int keyId) { if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(null); } using (DBEntities db = new DBEntities()) { var ent = db.YL_DATA_DOWN.SingleOrDefault(x => x.ID == keyId); var reEnt = new ProInterface.Models.DataDown(); if (ent != null) { reEnt = Fun.ClassToCopy <YL_DATA_DOWN, ProInterface.Models.DataDown>(ent); reEnt.FormServerStr = string.Join(",", ent.YL_DB_SERVER.Select(x => x.ID)); reEnt.ToServerStr = JSON.DecodeToStr(Fun.ClassListToCopy <YL_DATA_DOWN_TO, ProInterface.Models.DATA_DOWN_TO>(ent.YL_DATA_DOWN_TO.ToList())); } return(reEnt); } }
public bool DataDownSave(string loginKey, ref ErrorInfo err, ProInterface.Models.DataDown inEnt, IList <string> allPar) { if (!UserCheckFunctioAuthority(loginKey, ref err, MethodBase.GetCurrentMethod())) { return(false); } using (DBEntities db = new DBEntities()) { try { var ent = db.YL_DATA_DOWN.SingleOrDefault(a => a.ID == inEnt.ID); bool isAdd = false; if (ent == null) { isAdd = true; ent = Fun.ClassToCopy <ProInterface.Models.DataDown, YL_DATA_DOWN>(inEnt); } else { ent = Fun.ClassToCopy <ProInterface.Models.DataDown, YL_DATA_DOWN>(inEnt, ent, allPar); } var allFormDbServer = inEnt.FormServerStr.Split(',').Select(x => Convert.ToInt32(x)).ToList(); ent.YL_DB_SERVER.Clear(); ent.YL_DB_SERVER = db.YL_DB_SERVER.Where(x => allFormDbServer.Contains(x.ID)).ToList(); var allToDbServer = JSON.EncodeToEntity <IList <YL_DATA_DOWN_TO> >(inEnt.ToServerStr); foreach (var t in ent.YL_DATA_DOWN_TO.ToList()) { if (allToDbServer.SingleOrDefault(x => x.DB_SERVER_ID == t.DB_SERVER_ID) == null) { db.YL_DATA_DOWN_TO.Remove(t); } } foreach (var t in allToDbServer) { var tmp = ent.YL_DATA_DOWN_TO.SingleOrDefault(x => x.DB_SERVER_ID == t.DB_SERVER_ID); if (tmp == null) { ent.YL_DATA_DOWN_TO.Add(new YL_DATA_DOWN_TO { DATA_DOWN_ID = t.DATA_DOWN_ID, DB_SERVER_ID = t.DB_SERVER_ID, REPLACE_STR = t.REPLACE_STR, TO_SERVER_NAME = t.TO_SERVER_NAME }); } else { tmp.TO_SERVER_NAME = t.TO_SERVER_NAME; tmp.REPLACE_STR = t.REPLACE_STR; } } if (isAdd) { db.YL_DATA_DOWN.Add(ent); } db.SaveChanges(); UserWriteLog(loginKey, MethodBase.GetCurrentMethod(), StatusType.UserLogType.Edit); return(true); } catch (Exception e) { err.IsError = true; err.Message = e.Message; return(false); } } }