public async Task <IHttpActionResult> SearchProjectSkills([FromBody] SearchProjectSkillViewModel model)
        {
            model = model ?? new SearchProjectSkillViewModel();
            Validate(model);

            var projectSkills = await _projectSkillDomain.SearchProjectSkillsAsync(model);

            return(Ok(projectSkills));
        }
        public async Task <IHttpActionResult> Search([FromBody] SearchProjectSkillViewModel condition)
        {
            //Check null for condition model
            if (condition == null)
            {
                condition = new SearchProjectSkillViewModel();
                Validate(condition);
            }

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

            //Get project skills list
            var projectSkills = _unitOfWork.ProjectSkills.Search();

            if (condition.ProjectIds != null)
            {
                var projectIds = condition.ProjectIds.Where(x => x > 0).ToList();
                if (projectIds.Count > 0)
                {
                    projectSkills = projectSkills.Where(x => projectIds.Contains(x.ProjectId));
                }
            }

            if (condition.SkillIds != null)
            {
                var skillIds = condition.SkillIds.Where(x => x > 0).ToList();
                if (skillIds.Count > 0)
                {
                    projectSkills = projectSkills.Where(x => skillIds.Contains(x.SkillId));
                }
            }

            //Result search
            var result = new SearchResultViewModel <IList <ProjectSkill> >();

            result.Total = await projectSkills.CountAsync();

            //Do sort
            projectSkills = _dbService.Sort(projectSkills, SortDirection.Ascending, ProjectSkillSortProperty.ProjectId);

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

            result.Records = await projectSkills.ToListAsync();

            return(Ok(result));
        }
        public async Task <IHttpActionResult> Search([FromBody] SearchProjectSkillViewModel condition)
        {
            //Check null for condition model
            if (condition == null)
            {
                condition = new SearchProjectSkillViewModel();
                Validate(condition);
            }

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


            var loadProjectSkillsResult = await _projectSkillService.SearchProjectSkillsAsync(condition);

            return(Ok(loadProjectSkillsResult));
        }
Esempio n. 4
0
        /// <summary>
        /// Get project skill using specific conditions.
        /// </summary>
        /// <returns></returns>
        protected virtual IQueryable <ProjectSkill> GetProjectSkills(SearchProjectSkillViewModel condition)
        {
            var projectSkills = _unitOfWork.ProjectSkills.Search();

            if (condition.ProjectIds != null)
            {
                var projectIds = condition.ProjectIds.Where(x => x > 0).ToList();
                if (projectIds.Count > 0)
                {
                    projectSkills = projectSkills.Where(x => projectIds.Contains(x.ProjectId));
                }
            }

            if (condition.SkillIds != null)
            {
                var skillIds = condition.SkillIds.Where(x => x > 0).ToList();
                if (skillIds.Count > 0)
                {
                    projectSkills = projectSkills.Where(x => skillIds.Contains(x.SkillId));
                }
            }

            return(projectSkills);
        }
Esempio n. 5
0
        /// <summary>
        /// <inheritdoc />
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public virtual async Task <SearchResultViewModel <IList <ProjectSkill> > > SearchProjectSkillsAsync(SearchProjectSkillViewModel condition,
                                                                                                            CancellationToken cancellationToken = default(CancellationToken))
        {
            var projectSkills = GetProjectSkills(condition);
            var result        = new SearchResultViewModel <IList <ProjectSkill> >();

            result.Total = await projectSkills.CountAsync(cancellationToken);

            //Do sort
            projectSkills = _dbService.Sort(projectSkills, SortDirection.Ascending, ProjectSortProperty.Id);

            //Do Pagination
            result.Records = await _dbService.Paginate(projectSkills, condition.Pagination).ToListAsync(cancellationToken);

            return(result);
        }
        public async Task <SearchResultViewModel <IList <ProjectSkill> > > SearchProjectSkillsAsync(SearchProjectSkillViewModel model,
                                                                                                    CancellationToken cancellationToken = default(CancellationToken))
        {
            //Get project skills list
            var projectSkills = _dbContext.ProjectSkills.AsQueryable();

            if (model.ProjectIds != null)
            {
                var projectIds = model.ProjectIds.Where(x => x > 0).ToList();
                if (projectIds.Count > 0)
                {
                    projectSkills = projectSkills.Where(x => projectIds.Contains(x.ProjectId));
                }
            }
            if (model.SkillIds != null)
            {
                var skillIds = model.SkillIds.Where(x => x > 0).ToList();
                if (skillIds.Count > 0)
                {
                    projectSkills = projectSkills.Where(x => skillIds.Contains(x.SkillId));
                }
            }

            //Result search
            var result = new SearchResultViewModel <IList <ProjectSkill> >();

            result.Total = await projectSkills.CountAsync(cancellationToken);

            //Do sort
            projectSkills = _dbService.Sort(projectSkills, SortDirection.Ascending, ProjectSkillSortProperty.Id);

            //Do pagination
            projectSkills = _dbService.Paginate(projectSkills, model.Pagination);

            result.Records = await projectSkills.ToListAsync(cancellationToken);

            return(result);
        }