public static bool ChangeName(int userId, string newName, string newNumber) { //var user = TagUser.All.SingleOrDefault(u => u.Id == userId); var userHost = HostTagGroupStatus.All.SingleOrDefault(h => h.HostId == userId && h.ParentGroupId == 0); if (userHost != null) { string oldName = userHost.HostName; string oldNumber = userHost.HostExternalId; userHost.HostName = newName; userHost.HostExternalId = newNumber; if (HostTag.All.Where(_d => _d.HostId != userId && _d.HostExternalId.Trim() == newNumber.Trim()).Count() > 0) { throw new Exception("编号已经被使用!"); } else { UpdateHostTag(userHost); } if (userHost.TagId != 0) { if (LocatingServiceUtil.IsAvailable()) { IServiceApi serviceApi = LocatingServiceUtil.Instance <IServiceApi>(); serviceApi.UpdateTagNameAndSerialNo(userHost.TagId, newName, newNumber); } else { Tag.UpdateTagNameAndSerialNo(userHost.TagId, newName, newNumber); } } //包含更新缓存 //TagUser.UpdateNameAndNumber(userHost.Id, newName, newNumber); //var host = HostTag.AllActive.SingleOrDefault(h => h.HostId == userId); //host.HostName = newName; //host.HostExternalId = newNumber; if (Config.Settings.ProjectType == ProjectTypeEnum.WXFactory) { } //记录日志 string str = ""; if (oldName != newName) { str += "名称由" + oldName + "改为" + newName + " "; } if (oldNumber != newNumber) { str += "号码由" + oldNumber + "改为" + newNumber; } if (str != "") { string calling = GetGroupName(userHost.HostGroupId); Diary.Insert(ContextUser.Current.Id, 0, userHost.HostId, "修改" + calling + "信息: " + str); } return(true); } return(false); }