public async Task <PagedResultDto <OrganizationUnitUserListDto> > GetPagedOrganizationUnitUsers(
            GetOrganizationUnitUsersInput input)
        {
            try
            {
                var query = from uou in _userOrganizationUnitRepository.GetAll()
                            join ou in _organizationUnitRepository.GetAll() on uou.OrganizationUnitId equals ou.Id
                            join user in UserManager.Users.WhereIf(!input.FilterText.IsNullOrWhiteSpace(), u => u.UserName.Contains(input.FilterText)) on uou.UserId equals user.Id
                            where uou.OrganizationUnitId == input.Id
                            select new { uou, user };

                var totalCount = await query.CountAsync();

                var items = await query.OrderBy(o => input.Sorting).PageBy(input).ToListAsync();

                return(new PagedResultDto <OrganizationUnitUserListDto>(
                           totalCount,
                           items.Select(item =>
                {
                    var dto = ObjectMapper.Map <OrganizationUnitUserListDto>(item.user);
                    dto.AddedTime = item.uou.CreationTime;
                    return dto;
                }).ToList()));
            }
            catch (Exception e)
            {
                throw new UserFriendlyException(e.Message);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 刷新成员
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        private async Task GetOrganizationUnitUsers(GetOrganizationUnitUsersInput input)
        {
            await SetBusyAsync(async() =>
            {
                var pagedResult = await appService.GetOrganizationUnitUsers(input);
                if (pagedResult != null)
                {
                    memberdataPager.SetList(pagedResult);
                }

                UpdateOrganizationUnit(input.Id);
            });
        }
Ejemplo n.º 3
0
        public async Task <PagedResultOutput <ProductSpecificPriceListDto> > GetSpecificPrices(GetProductSpecificPricesInput input)
        {
            IQueryable <ProductSpecificPrice> all      = this._specificPriceRepository.GetAll();
            IQueryable <ProductSpecificPrice> tenantId =
                from x in all
                where x.TenantId == (this.AbpSession.ImpersonatorTenantId.HasValue ? this.AbpSession.ImpersonatorTenantId.Value : this.AbpSession.TenantId.Value)
                select x;
            IQueryable <ProductSpecificPrice> productId = tenantId.WhereIf <ProductSpecificPrice>(!input.Filter.IsNullOrEmpty(), (ProductSpecificPrice p) => p.Cost == decimal.Parse(input.Filter));

            if (input.ProductId > (long)0)
            {
                IQueryable <ProductSpecificPrice> productSpecificPrices = this._specificPriceRepository.GetAll();
                productId =
                    from p in productSpecificPrices
                    where p.ProductId == input.ProductId
                    select p;
            }
            int num = await productId.CountAsync <ProductSpecificPrice>();

            List <ProductSpecificPrice> listAsync = await productId.OrderBy <ProductSpecificPrice>(input.Sorting, new object[0]).PageBy <ProductSpecificPrice>(input).ToListAsync <ProductSpecificPrice>();

            PagedResultOutput <ProductSpecificPriceListDto> pagedResultOutput = new PagedResultOutput <ProductSpecificPriceListDto>(num, listAsync.MapTo <List <ProductSpecificPriceListDto> >());

            if (pagedResultOutput.Items.Any <ProductSpecificPriceListDto>())
            {
                foreach (ProductSpecificPriceListDto item in pagedResultOutput.Items)
                {
                    if (item.ForOrganizationalUnitId.HasValue)
                    {
                        IOrganizationUnitAppService   organizationUnitAppService    = this._organizationUnitAppService;
                        GetOrganizationUnitUsersInput getOrganizationUnitUsersInput = new GetOrganizationUnitUsersInput()
                        {
                            Id             = item.ForOrganizationalUnitId.Value,
                            MaxResultCount = 1000
                        };
                        PagedResultOutput <OrganizationUnitUserListDto> organizationUnitUsers = await organizationUnitAppService.GetOrganizationUnitUsers(getOrganizationUnitUsersInput);

                        if (organizationUnitUsers.Items.Any <OrganizationUnitUserListDto>())
                        {
                            item.ForOrganizationalUnit.MemberCount = organizationUnitUsers.TotalCount;
                        }
                    }
                }
            }
            return(pagedResultOutput);
        }
Ejemplo n.º 4
0
        public OrganizationsViewModel(IOrganizationUnitAppService userAppService)
        {
            this.appService = userAppService;
            SelectedCommand = new DelegateCommand <OrganizationListModel>(Selected);

            AddRootUnitCommand = new DelegateCommand <OrganizationListModel>(AddOrganizationUnit);
            ChangeCommand      = new DelegateCommand <OrganizationListModel>(EditOrganizationUnit);
            RemoveCommand      = new DelegateCommand <OrganizationListModel>(DeleteOrganizationUnit);

            DeleteRoleCommand   = new DelegateCommand <OrganizationUnitRoleListDto>(DeleteRole);
            DeleteMemberCommand = new DelegateCommand <OrganizationUnitUserListDto>(DeleteMember);

            usersInput    = new GetOrganizationUnitUsersInput();
            rolesInput    = new GetOrganizationUnitRolesInput();
            roledataPager = ContainerLocator.Container.Resolve <IDataPagerService>();
            roledataPager.OnPageIndexChangedEventhandler += RoleOnPageIndexChangedEventhandler;
            memberdataPager = ContainerLocator.Container.Resolve <IDataPagerService>();
            memberdataPager.OnPageIndexChangedEventhandler += MemberdataPager_OnPageIndexChangedEventhandler;

            ExecuteItemCommand = new DelegateCommand <string>(ExecuteItem);
        }
        public async Task <PagedResultDto <OrganizationUnitUserListDto> > GetOrganizationUnitUsers(GetOrganizationUnitUsersInput input)
        {
            var query = from uou in _userOrganizationUnitRepository.GetAll()
                        join ou in _organizationUnitRepository.GetAll() on uou.OrganizationUnitId equals ou.Id
                        join user in UserManager.Users on uou.UserId equals user.Id
                        where uou.OrganizationUnitId == input.Id
                        select new { uou, user };

            var totalCount = await query.CountAsync();

            var items = await query.OrderBy(input.Sorting).PageBy(input).ToListAsync();

            return(new PagedResultDto <OrganizationUnitUserListDto>(
                       totalCount,
                       items.Select(item =>
            {
                var dto = item.user.MapTo <OrganizationUnitUserListDto>();
                dto.AddedTime = item.uou.CreationTime;
                return dto;
            }).ToList()));
        }
        public async Task <PagedResultDto <OrganizationUnitUserListDto> > GetOrganizationUnitWithAllUserForAdd(GetOrganizationUnitUsersInput input)
        {
            var query = UserManager.Users;

            query = query.WhereIf(!input.Name.IsNullOrEmpty(), p => p.Name.Contains(input.Name));

            var totalCount = await query.CountAsync();

            var items = await query.OrderBy(input.Sorting).PageBy(input).ToListAsync();

            return(new PagedResultDto <OrganizationUnitUserListDto>(
                       totalCount,
                       items.Select(item =>
            {
                var dto = item.MapTo <OrganizationUnitUserListDto>();
                dto.IsChecked =
                    _userOrganizationUnitRepository.GetAll()
                    .Any(p => p.OrganizationUnitId == input.Id && p.UserId == dto.Id);
                return dto;
            }).ToList()));
        }
Ejemplo n.º 7
0
        public async Task <PagedResultDto <OrganizationUnitUserListDto> > GetOrganizationUnitUsers(GetOrganizationUnitUsersInput input)
        {
            var ouIds = new List <long> {
                input.Id
            };

            if (input.IsRecursiveSearch)
            {
                var ou = await _organizationUnitRepository.GetAsync(input.Id);

                if (ou != null && !string.IsNullOrEmpty(ou.Code))
                {
                    ouIds.AddRange(_organizationUnitRepository.GetAll()
                                   .Where(o => o.Code.StartsWith(ou.Code))
                                   .Select(o => o.Id));
                }
            }

            var query = from uou in _userOrganizationUnitRepository.GetAll()
                        join ou in _organizationUnitRepository.GetAll() on uou.OrganizationUnitId equals ou.Id
                        join user in UserManager.Users on uou.UserId equals user.Id
                        where ouIds.Contains(uou.OrganizationUnitId)
                        select new { uou, user };

            if (!string.IsNullOrEmpty(input.NameFilter))
            {
                query = query.Where(q => q.user.UserName.Contains(input.NameFilter));
            }
            var totalCount = await query.CountAsync();

            var items = await query.OrderBy(input.Sorting).PageBy(input).ToListAsync();

            return(new PagedResultDto <OrganizationUnitUserListDto>(
                       totalCount,
                       items.Select(item =>
            {
                var dto = item.user.MapTo <OrganizationUnitUserListDto>();
                dto.AddedTime = item.uou.CreationTime.ToString("yyyy-MM-dd HH:dd:ss");
                return dto;
            }).ToList()));
        }
Ejemplo n.º 8
0
        public async Task <PagedResultDto <OrganizationUnitUserListDto> > GetOrganizationUnitUsers(GetOrganizationUnitUsersInput input)
        {
            var usersQuery = UserManager.Users.Where(x => x.OrganizationUnitId == input.Id);

            var totalCount = await usersQuery.CountAsync();

            var items = await usersQuery.OrderBy(input.Sorting).PageBy(input).ToListAsync();

            return(new PagedResultDto <OrganizationUnitUserListDto>(
                       totalCount,
                       items.Select(item =>
            {
                var organizationUnitUserDto = ObjectMapper.Map <OrganizationUnitUserListDto>(item);
                organizationUnitUserDto.AddedTime = item.CreationTime;
                return organizationUnitUserDto;
            }).ToList()));
        }
Ejemplo n.º 9
0
        public async Task <PagedResultDto <OrganizationUnitRolesListDto> > GetOrganizationUnitRoles(GetOrganizationUnitUsersInput input)
        {
            CheckGetAllPermission();
            var query = from uou in _roleOrganizationUnitRepository.GetAll()
                        join ou in Repository.GetAll() on uou.OrganizationUnitId equals ou.Id
                        join role in _roleManager.Roles on uou.RoleId equals role.Id
                        where uou.OrganizationUnitId == input.Id
                        select new { uou, role };

            var totalCount = await query.CountAsync();

            var items = await query.PageBy(input).ToListAsync();

            return(new PagedResultDto <OrganizationUnitRolesListDto>(
                       totalCount,
                       items.Select(item =>
            {
                var dto = ObjectMapper.Map <OrganizationUnitRolesListDto>(item.role);
                dto.OrganizationUnitId = input.Id;
                dto.RoleId = item.role.Id;
                dto.Id = item.uou.Id;
                dto.AddedTime = item.uou.CreationTime;
                return dto;
            }).ToList()));
        }
        /// <summary>
        /// 获取组织用户
        /// </summary>
        public async Task <PagedResultDto <OrganizationUnitUserListDto> > GetOrganizationUnitUsers(GetOrganizationUnitUsersInput input)
        {
            var query = from uou in _userOrganizationUnitRepository.GetAll()
                        join ou in _organizationUnitRepository.GetAll() on uou.OrganizationUnitId equals ou.Id
                        join user in _userRepository.GetAllIncluding(x => x.Roles) on uou.UserId equals user.Id
                        where uou.OrganizationUnitId == input.Id
                        select new { uou, user };

            var totalCount = await query.CountAsync();

            var items = await query.OrderBy(input.Sorting).PageBy(input).ToListAsync();

            return(new PagedResultDto <OrganizationUnitUserListDto>(
                       totalCount,
                       items.Select(item =>
            {
                var roles = _roleManager.Roles.Where(r => item.user.Roles.Any(ur => ur.RoleId == r.Id))
                            .Select(r => r.NormalizedName);
                var dto = ObjectMapper.Map <OrganizationUnitUserListDto>(item.user);
                dto.AddedTime = item.uou.CreationTime;
                dto.RoleNames = roles.ToArray();
                return dto;
            }).ToList()));
        }
Ejemplo n.º 11
0
        public async Task <PagedResultOutput <OrganizationUnitUserListDto> > GetOrganizationUnitUsers(GetOrganizationUnitUsersInput input)
        {
            var result = from uou in _userOrganizationUnitRepository.GetAll()
                         join ou in _organizationUnitRepository.GetAll() on uou.OrganizationUnitId equals ou.Id
                         join user in UserManager.Users on uou.UserId equals user.Id
                         where uou.OrganizationUnitId == input.Id
                         orderby input.Sorting
                         select new
            {
                uou,
                user
            };
            int resultCount = await result.CountAsync();

            var pagedResult = await result.PageBy(input).ToListAsync();

            PagedResultOutput <OrganizationUnitUserListDto> pagedResultOutput = new PagedResultOutput <OrganizationUnitUserListDto>(resultCount, pagedResult.Select((item) =>
            {
                OrganizationUnitUserListDto creationTime = item.user.MapTo <OrganizationUnitUserListDto>();
                creationTime.AddedTime = item.uou.CreationTime;
                return(creationTime);
            }).ToList());

            return(pagedResultOutput);
        }