public async Task <ActionResult> AddCpu() { var cpuQuery = new CpuFilter(Session); var dbCpu = await cpuQuery.FilterCpu(); return(View("AddCpu", dbCpu)); }
private async Task <IEnumerable <CpuEntity> > ReadEntitiesAsync(CpuFilter filter) { var queryBuilder = new SqlBuilder() .Select(nameof(CpuEntity.Id)) .Select(nameof(CpuEntity.Model)) .Select(nameof(CpuEntity.Manufacturer)) .Select(nameof(CpuEntity.Category)) .Select(nameof(CpuEntity.InstructionSet)) .Select(nameof(CpuEntity.ClockInMhz)) .Select(nameof(CpuEntity.Cores)) .Select(nameof(CpuEntity.Threads)); if (filter != null) { var parameters = new DynamicParameters(); if (!string.IsNullOrEmpty(filter.SearchString)) { filter.SearchString = filter.SearchString.Replace(" ", "*"); parameters.Add("@SearchString", filter.SearchString + "%"); queryBuilder.Where($"{nameof(CpuEntity.Model)} LIKE @SearchString OR {nameof(CpuEntity.Name)} LIKE @SearchString", parameters); } else { AddFilter(filter.ByManufacturer, nameof(CpuEntity.Manufacturer), parameters, queryBuilder); AddFilter(filter.ByCategory, nameof(CpuEntity.Category), parameters, queryBuilder); AddFilter(filter.ByMicroArchitecture, nameof(CpuEntity.MicroArchitecture), parameters, queryBuilder); AddFilter(filter.ByInstructionSet, nameof(CpuEntity.InstructionSet), parameters, queryBuilder); } if (!string.IsNullOrEmpty(filter.OrderBy)) { parameters.Add($"@Order", filter.OrderBy); queryBuilder.OrderBy("@Order ASC", parameters); } } var builderTemplate = queryBuilder.AddTemplate("SELECT /**select**/ FROM CpuEntity /**where**/ /**orderby**/"); var result = await Connection.QueryAsync <CpuEntity>(builderTemplate.RawSql, builderTemplate.Parameters); return(result); }
public async Task <IEnumerable <Cpu> > ReadAsync(CpuFilter filter) { var result = await ReadEntitiesAsync(filter); return(result == null ? null : result.Select(MapModel)); }