public async Task <IHttpActionResult> SearchSkill([FromBody] SearchSkillViewModel condition) { condition = condition ?? new SearchSkillViewModel(); Validate(condition); var skills = await _skillDomain.SearchSkillsAsync(condition); return(Ok()); }
public async Task <IHttpActionResult> Search([FromBody] SearchSkillViewModel condition) { if (condition == null) { condition = new SearchSkillViewModel(); Validate(condition); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var skills = _unitOfWork.Skills.Search(); if (condition.Ids != null && condition.Ids.Count > 0) { var ids = condition.Ids.Where(c => c > 0).ToList(); if (ids.Count > 0) { skills = skills.Where(c => ids.Contains(c.Id)); } } if (condition.Names != null && condition.Names.Count > 0) { var names = condition.Names.Where(c => !string.IsNullOrEmpty(c)).ToList(); if (names.Count > 0) { skills = skills.Where(c => names.Any(name => c.Name.Contains(name))); } } if (condition.StartedTime != null) { skills = skills.Where(c => c.CreatedTime >= condition.StartedTime.From && c.CreatedTime <= condition.StartedTime.To); } var result = new SearchResultViewModel <IList <Skill> >(); result.Total = await skills.CountAsync(); //do sorting skills = _dbService.Sort(skills, SortDirection.Ascending, UserDescriptionSortProperty.Id); // Do pagination. skills = _dbService.Paginate(skills, condition.Pagination); result.Records = await skills.ToListAsync(); return(Ok(result)); }
public async Task <IHttpActionResult> Search([FromBody] SearchSkillViewModel condition) { if (condition == null) { condition = new SearchSkillViewModel(); Validate(condition); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var loadSkillResult = await _skillService.SearchSkillsAsync(condition, CancellationToken.None); return(Ok(loadSkillResult)); }
/// <summary> /// Get skills using specific conditions. /// </summary> /// <param name="condition"></param> /// <returns></returns> protected virtual IQueryable <Skill> GetSkills(SearchSkillViewModel condition) { var skills = _unitOfWork.Skills.Search(); if (condition.Ids != null && condition.Ids.Count > 0) { var ids = condition.Ids.Where(c => c > 0).ToList(); if (ids.Count > 0) { skills = skills.Where(c => ids.Contains(c.Id)); } } if (condition.Names != null && condition.Names.Count > 0) { var names = condition.Names.Where(c => !string.IsNullOrEmpty(c)).ToList(); if (names.Count > 0) { skills = skills.Where(c => names.Any(name => c.Name.Contains(name))); } } if (condition.CreatedTime != null) { var createdTime = condition.CreatedTime; var from = createdTime.From; var to = createdTime.To; if (from != null) { skills = skills.Where(skill => skill.CreatedTime >= from); } if (to != null) { skills = skills.Where(skill => skill.CreatedTime <= to); } } return(skills); }
/// <summary> /// <inheritdoc /> /// </summary> /// <param name="condition"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public virtual async Task <Skill> SearchSkillAsync(SearchSkillViewModel condition, CancellationToken cancellationToken = default(CancellationToken)) { return(await GetSkills(condition).FirstOrDefaultAsync(cancellationToken)); }
/// <summary> /// <inheritdoc /> /// </summary> /// <param name="condition"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public virtual async Task <SearchResultViewModel <IList <Skill> > > SearchSkillsAsync(SearchSkillViewModel condition, CancellationToken cancellationToken = default(CancellationToken)) { var skills = GetSkills(condition); var loadSkillResult = new SearchResultViewModel <IList <Skill> >(); loadSkillResult.Total = await skills.CountAsync(cancellationToken); //do sorting skills = _dbService.Sort(skills, SortDirection.Ascending, UserDescriptionSortProperty.Id); // Do pagination. skills = _dbService.Paginate(skills, condition.Pagination); loadSkillResult.Records = await skills.ToListAsync(cancellationToken); return(loadSkillResult); }
public async Task <SearchResultViewModel <IList <Skill> > > SearchSkillsAsync(SearchSkillViewModel condition, CancellationToken cancellationToken = default(CancellationToken)) { var skills = _dbContext.Skills.AsQueryable(); if (condition.Ids != null && condition.Ids.Count > 0) { var ids = condition.Ids.Where(c => c > 0).ToList(); if (ids.Count > 0) { skills = skills.Where(c => ids.Contains(c.Id)); } } if (condition.Names != null && condition.Names.Count > 0) { var names = condition.Names.Where(c => !string.IsNullOrEmpty(c)).ToList(); if (names.Count > 0) { skills = skills.Where(c => names.Contains(c.Name)); } } if (condition.StartedTime != null) { skills = skills.Where(c => c.CreatedTime >= condition.StartedTime.From && c.CreatedTime <= condition.StartedTime.To); } var result = new SearchResultViewModel <IList <Skill> >(); result.Total = await skills.CountAsync(cancellationToken); //do sorting skills = _dbService.Sort(skills, SortDirection.Ascending, UserDescriptionSortProperty.Id); // Do pagination. skills = _dbService.Paginate(skills, condition.Pagination); result.Records = await skills.ToListAsync(cancellationToken); return(result); }