public async Task <IHttpActionResult> Search([FromBody] SearchUserDescriptionViewModel condition)
        {
            if (condition == null)
            {
                condition = new SearchUserDescriptionViewModel();
                Validate(condition);
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (condition.Ids != null && condition.Ids.Count > 0)
            {
                condition.Ids = condition.Ids.Where(x => x > 0).ToHashSet();
            }

            if (condition.UserIds != null && condition.UserIds.Count > 0)
            {
                condition.UserIds = condition.UserIds.Where(x => x > 0).ToHashSet();
            }

            var loadUserDescriptionResult =
                await _userDescriptionService.SearchUserDescriptionsAsync(condition, CancellationToken.None);

            return(Ok(loadUserDescriptionResult));
        }
        /// <summary>
        /// Search for user descriptions using specific condition.
        /// </summary>
        /// <param name="condition"></param>
        /// <returns></returns>
        protected virtual IQueryable <UserDescription> GetUserDescriptions(SearchUserDescriptionViewModel condition)
        {
            var userDescriptions = _unitOfWork.UserDescriptions.Search();

            // Ids list is defined.
            if (condition.Ids != null && condition.Ids.Count > 0)
            {
                var ids = condition.Ids.Where(x => x > 0).ToList();
                if (ids.Count > 0)
                {
                    userDescriptions = userDescriptions.Where(userDescription => ids.Contains(userDescription.Id));
                }
            }

            // User ids list is defined.
            if (condition.UserIds != null && condition.UserIds.Count > 0)
            {
                var userIds = condition.UserIds.Where(x => x > 0).ToList();
                if (userIds.Count > 0)
                {
                    userDescriptions =
                        userDescriptions.Where(userDescription => userIds.Contains(userDescription.UserId));
                }
            }

            return(userDescriptions);
        }
예제 #3
0
        public async Task <IHttpActionResult> SearchUserDescriptions([FromBody] SearchUserDescriptionViewModel condition)
        {
            condition = condition ?? new SearchUserDescriptionViewModel();
            Validate(condition);

            var userDescriptions = await _userDesciptionDomain.SearchUserDescriptionsAsync(condition);

            return(Ok(userDescriptions));
        }
        public async Task <IHttpActionResult> Search([FromBody] SearchUserDescriptionViewModel condition)
        {
            if (condition == null)
            {
                condition = new SearchUserDescriptionViewModel();
                Validate(condition);
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userDescriptions = _unitOfWork.UserDescriptions.Search();

            if (condition.Ids != null && condition.Ids.Count > 0)
            {
                var ids = condition.Ids.Where(x => x > 0).ToList();
                if (ids.Count > 0)
                {
                    userDescriptions = userDescriptions.Where(userDescription => ids.Contains(userDescription.Id));
                }
            }

            if (condition.UserIds != null && condition.UserIds.Count > 0)
            {
                var userIds = condition.UserIds.Where(x => x > 0).ToList();
                if (userIds.Count > 0)
                {
                    userDescriptions =
                        userDescriptions.Where(userDescription => userIds.Contains(userDescription.UserId));
                }
            }

            var loadUserDescriptionResult = new SearchResultViewModel <IList <UserDescription> >();

            loadUserDescriptionResult.Total = await userDescriptions.CountAsync();

            // Do sorting.
            userDescriptions =
                _dbService.Sort(userDescriptions, SortDirection.Ascending, UserDescriptionSortProperty.Id);

            // Do pagination.
            userDescriptions = _dbService.Paginate(userDescriptions, condition.Pagination);

            loadUserDescriptionResult.Records = await userDescriptions.ToListAsync();

            return(Ok(loadUserDescriptionResult));
        }
        /// <summary>
        /// Find and delete user description.
        /// </summary>
        /// <param name="id"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public virtual async Task DeleteUserDescriptionAsync(int id, CancellationToken cancellationToken = default(CancellationToken))
        {
            // Find user description.
            var loadUserDescriptionCondition = new SearchUserDescriptionViewModel();

            loadUserDescriptionCondition.Ids = new HashSet <int>();
            loadUserDescriptionCondition.Ids.Add(id);

            // Get user description.
            var userDescription =
                await GetUserDescriptions(loadUserDescriptionCondition).FirstOrDefaultAsync(cancellationToken);

            if (userDescription == null)
            {
                throw new HttpException((int)HttpStatusCode.NotFound, HttpMessages.UserDescriptionNotFoud);
            }

            _unitOfWork.UserDescriptions.Remove(userDescription);
            await _unitOfWork.CommitAsync();
        }
예제 #6
0
        public async Task <SearchResultViewModel <IList <UserDescription> > > SearchUserDescriptionsAsync(SearchUserDescriptionViewModel condition,
                                                                                                          CancellationToken cancellationToken = default(CancellationToken))
        {
            var userDescriptions = _dbContext.UserDescriptions.AsQueryable();

            if (condition.Ids != null && condition.Ids.Count > 0)
            {
                var ids = condition.Ids.Where(x => x > 0).ToList();
                if (ids.Count > 0)
                {
                    userDescriptions = userDescriptions.Where(userDescription => ids.Contains(userDescription.Id));
                }
            }

            if (condition.UserIds != null && condition.UserIds.Count > 0)
            {
                var userIds = condition.UserIds.Where(x => x > 0).ToList();
                if (userIds.Count > 0)
                {
                    userDescriptions =
                        userDescriptions.Where(userDescription => userIds.Contains(userDescription.UserId));
                }
            }

            var loadUserDescriptionResult = new SearchResultViewModel <IList <UserDescription> >();

            loadUserDescriptionResult.Total = await userDescriptions.CountAsync(cancellationToken);

            // Do sorting.
            userDescriptions =
                _dbService.Sort(userDescriptions, SortDirection.Ascending, UserDescriptionSortProperty.Id);

            // Do pagination.
            userDescriptions = _dbService.Paginate(userDescriptions, condition.Pagination);

            loadUserDescriptionResult.Records = await userDescriptions.ToListAsync(cancellationToken);

            return(loadUserDescriptionResult);
        }
 /// <summary>
 /// <inheritdoc />
 /// </summary>
 /// <param name="condition"></param>
 /// <param name="cancellationToken"></param>
 /// <returns></returns>
 public virtual async Task <UserDescription> SearchUserDescription(SearchUserDescriptionViewModel condition,
                                                                   CancellationToken cancellationToken = default(CancellationToken))
 {
     return(await GetUserDescriptions(condition).FirstOrDefaultAsync(cancellationToken));
 }
        /// <summary>
        /// <inheritdoc />
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public virtual async Task <SearchResultViewModel <IList <UserDescription> > > SearchUserDescriptionsAsync(SearchUserDescriptionViewModel condition,
                                                                                                                  CancellationToken cancellationToken = default(CancellationToken))
        {
            var userDescriptions          = GetUserDescriptions(condition);
            var loadUserDescriptionResult = new SearchResultViewModel <IList <UserDescription> >();

            loadUserDescriptionResult.Total = await userDescriptions.CountAsync(cancellationToken);

            // Do sorting.
            userDescriptions =
                _dbService.Sort(userDescriptions, SortDirection.Ascending, UserDescriptionSortProperty.Id);

            // Do pagination.
            userDescriptions = _dbService.Paginate(userDescriptions, condition.Pagination);

            loadUserDescriptionResult.Records = await userDescriptions.ToListAsync(cancellationToken);

            return(loadUserDescriptionResult);
        }