/// <summary> /// Corrige l'état de la propriété de navigation LastModifier. /// </summary> private void FixupLastModifier(User previousValue) { if (IsDeserializing) { return; } if (previousValue != null && previousValue.LastModifiedActionCategories.Contains(this)) { previousValue.LastModifiedActionCategories.Remove(this); } if (LastModifier != null) { if (!LastModifier.LastModifiedActionCategories.Contains(this)) { LastModifier.LastModifiedActionCategories.Add(this); } ModifiedByUserId = LastModifier.UserId; } if (ChangeTracker.ChangeTrackingEnabled) { ChangeTracker.RecordValue("LastModifier", previousValue, LastModifier); if (LastModifier != null && !LastModifier.ChangeTracker.ChangeTrackingEnabled) { LastModifier.StartTracking(); } } }
/// <summary> /// 查询记录 /// </summary> /// <param name="inputDto">查询实体</param> /// <returns></returns> public PagerResult <Dtos.GetDepartmentOutputDTO> GetDepartment(Dtos.GetDepartmentInputDTO inputDto) { var pagerWrapper = new PagerResult <Dtos.GetDepartmentOutputDTO>(); var table = from c in _deptRepository.GetAll() join p in _deptRepository.GetAll() on c.ParentId equals p.Id into Parent from P in Parent.DefaultIfEmpty() join o in _organizeRepository.GetAll() on c.OrganizeId equals o.Id into Organize from O in Organize.DefaultIfEmpty() join mu in _userRepository.GetAll() on c.ManagerId equals mu.Id into Manager from MU in Manager.DefaultIfEmpty() join cu in _userRepository.GetAll() on c.Creator equals cu.Id into Creator from CU in Creator.DefaultIfEmpty() join uu in _userRepository.GetAll() on c.LastModifier equals uu.Id into LastModifier from UU in LastModifier.DefaultIfEmpty() select new Dtos.GetDepartmentOutputDTO { Id = c.Id.ToString(), Name = c.Name, Email = c.Email, ManagerId = c.ManagerId.ToString(), Fax = c.Fax, Layer = c.Layer, ParentId = c.ParentId, ParentName = P.Name, OrganizeName = O.Name, Phone = c.Phone, CreateTime = c.CreateTime, Creator = CU == null ? "" : CU.UserName, Description = c.Description, OrganizeId = c.OrganizeId, LastModifier = UU == null ? "" : UU.UserName, LastModifyTime = c.LastModifyTime, SortCode = c.SortCode, Manager = MU == null ? "" : MU.UserName, }; var result = table .WhereIf(!inputDto.DepartmentName.IsNullOrEmpty(), p => p.Name.Contains(inputDto.DepartmentName)) .WhereIf(inputDto.OrganizeId.HasValue, p => p.OrganizeId == inputDto.OrganizeId) .WhereIf(!inputDto.Manager.IsNullOrEmpty(), p => p.Manager.Contains(inputDto.Manager)) .WhereIf(inputDto.ParentId.HasValue, p => p.ParentId == inputDto.ParentId) .Page(inputDto, pagerWrapper) .ToList(); pagerWrapper.Result = result; return(pagerWrapper); }