Example #1
0
        public async Task <ActionResult> AddCpu()
        {
            var cpuQuery = new CpuFilter(Session);
            var dbCpu    = await cpuQuery.FilterCpu();

            return(View("AddCpu", dbCpu));
        }
Example #2
0
        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);
        }
Example #3
0
        public async Task <IEnumerable <Cpu> > ReadAsync(CpuFilter filter)
        {
            var result = await ReadEntitiesAsync(filter);

            return(result == null ? null : result.Select(MapModel));
        }