public async Task <PageList <Componentas> > GetComponents(ComponentParams componentParams)
        {
            var componentass = _context.Componentass.Include(p => p.Photos).AsQueryable();

            if (componentParams.Size != null)
            {
                componentass = componentass.Where(u => u.Size == componentParams.Size);
            }

            if (componentParams.Type != null)
            {
                componentass = componentass.Where(u => u.Type == componentParams.Type);
            }

            if (componentParams.Mnf != null)
            {
                componentass = from u in componentass
                               where u.Mnf.Contains(componentParams.Mnf)
                               select u;
            }
            if (componentParams.Nominal != null)
            {
                componentass = from u in componentass
                               where u.Nominal.Contains(componentParams.Nominal)
                               select u;
            }
            if (componentParams.BuhNr != null)
            {
                componentass = from u in componentass
                               where u.BuhNr.Contains(componentParams.BuhNr)
                               select u;
            }

            if (!string.IsNullOrEmpty(componentParams.OrderBy))
            {
                switch (componentParams.OrderBy)
                {
                case "created":
                    componentass = componentass.OrderByDescending(u => u.Created);
                    break;

                case "nominal":
                    componentass = componentass.OrderBy(u => u.Nominal);
                    break;

                case "mnf":
                    componentass = componentass.OrderBy(u => u.Mnf);
                    break;

                default:
                    componentass = componentass.OrderBy(u => u.Id);
                    break;
                }
            }

            return(await PageList <Componentas> .CreateAsync(componentass, componentParams.PageNumber, componentParams.PageSize));
        }
        public async Task <IActionResult> GetComponents([FromQuery] ComponentParams componentParams)
        {
            var components = await _repo.GetComponents(componentParams);

            var componentsToReturn = _mapper.Map <IEnumerable <ComponetsForListDto> >(components);

            Response.AddPagination(components.CurrentPage, components.PageSize, components.TotalCount, components.TotalPages);

            return(Ok(componentsToReturn));
        }
        public async Task <IEnumerable <Component> > GetComponents(ComponentParams componentParams)
        {
            if (componentParams == null)
            {
                componentParams = new ComponentParams();
            }

            var query = _context.Components.Include(x => x.Category).AsQueryable();

            if (componentParams.CategoryId.HasValueGreaterThan(0))
            {
                query = query.Where(x => x.CategoryId == componentParams.CategoryId);
            }

            return(await query.ToListAsync());
        }
        private void InitializeProperties(object first)
        {
            Type type = first.GetType();

            if (ComponentParams.Contains("columns") == false)
            {
                if (propertiesCache.Contains(type))
                {
                    properties = (PropertyInfo[])propertiesCache[type];
                }
                else
                {
                    propertiesCache[type] = properties = type.GetProperties();
                }
                return;
            }
            List <PropertyInfo> props   = new List <PropertyInfo>();
            IEnumerable         columns = (IEnumerable)ComponentParams["columns"];

            foreach (string columnName in columns)
            {
                string       key = type.FullName + "." + columnName;
                PropertyInfo propertyInfo;
                if (propertiesCache.Contains(key))
                {
                    propertyInfo = (PropertyInfo)propertiesCache[key];
                }
                else
                {
                    propertiesCache[key] = propertyInfo = type.GetProperty(columnName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase);
                }
                if (propertyInfo != null)
                {
                    props.Add(propertyInfo);
                }
            }
            properties = props.ToArray();
        }
Example #5
0
        public async Task <IActionResult> GetComponents([FromQuery] ComponentParams componentParams)
        {
            var components = await _repo.GetComponents(componentParams);

            return(Ok(components));
        }