/// <summary> /// Shows a reports details by name. /// </summary> /// <param name="name"></param> /// <param name="stringOption"></param> /// <returns></returns> public async Task <IEnumerable <ReportDto> > GetAllByNameAsync(string name, Search.StringOption stringOption) { var option = GetSearchNameOptions(name, stringOption); var reportDbs = await _repository.ReadAllAsync(option, _ => _.Name).ConfigureAwait(false); var reportDtos = _mapper.Map <List <ReportDto> >(reportDbs); return(reportDtos); }
private Expression <Func <DashboardDb, bool> > GetSearchNameOptions(string name, Search.StringOption stringOption) { Expression <Func <DashboardDb, bool> > expressionWhere; switch (stringOption) { case Search.StringOption.Equals: expressionWhere = _ => _.Name.Equals(name); break; case Search.StringOption.StartsWith: expressionWhere = _ => _.Name.StartsWith(name); break; case Search.StringOption.EndsWith: expressionWhere = _ => _.Name.EndsWith(name); break; case Search.StringOption.Contains: expressionWhere = _ => _.Name.Contains(name); break; default: expressionWhere = _ => _.Name.StartsWith(name); break; } return(expressionWhere); }