Esempio n. 1
0
        /// <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();
                }
            }
        }
Esempio n. 2
0
        /// <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);
        }