public async Task GetCodingSkillWithNoResults() { var filter = new CodingSkillFilter() { Name = new Guid().ToString() }; List <CodingSkill> skills = await Get <List <CodingSkill> >(API_URL, filter); Assert.True(skills != null && !skills.Any(), "No skills should found from the API."); }
/// <summary> /// Get the skills by filter. /// </summary> /// <returns>List of skills matching given filter.</returns> /// <param name="filter">Filter</param> public async Task <IEnumerable <CodingSkillEntity> > GetByFilter(CodingSkillFilter filter) { var codingSkills = _context.CodingSkills.AsQueryable(); // Apply filter if (filter.Levels != null && filter.Levels.Any()) { codingSkills = codingSkills.Where(skill => filter.Levels.Contains(skill.Level)); } if (!string.IsNullOrWhiteSpace(filter.Name)) { codingSkills = codingSkills.Where(skill => skill.Name.Contains(filter.Name, StringComparison.CurrentCultureIgnoreCase)); } return(await codingSkills.OrderBy(skill => skill.Level).ToListAsync()); }
public async Task GetSkillByLevel() { var testSkill = testSkills.First(); using var ctx = await DBContextHelper.ResetWithData(testSkills); ICodingSkillRepository repo = new CodingSkillRepository(ctx); var filter = new CodingSkillFilter() { Levels = new List <CodingSkillLevel> { testSkill.Level } }; IEnumerable <CodingSkillEntity> skills = await repo.GetByFilter(filter); Assert.All(skills, skill => filter.Levels.Contains(skill.Level)); Assert.Contains(skills, s => s.Id == testSkill.Id); }
/// <summary> /// Get coding skills by filter. /// </summary> /// <returns>List of coding skills matching to filter.</returns> /// <param name="filter">Filter</param> public async Task <IEnumerable <CodingSkillEntity> > GetByFilter(CodingSkillFilter filter) { return(await _codingSkillRepository.GetByFilter(filter)); }
public async Task <IActionResult> Get([FromQuery] CodingSkillFilter filter) { var entities = await _codingSkillService.GetByFilter(filter); return(Ok(_mapper.Map <IEnumerable <CodingSkill> >(entities))); }