Esempio n. 1
0
        public async Task <PaginatedList <Package> > GetPackages(PackageFilterServiceModel serviceModel)
        {
            var packages = GetPackages().AsNoTracking();

            foreach (var taxonomyId in serviceModel.TaxonomyIds)
            {
                if (taxonomyId != default(long))
                {
                    packages = packages.Where(o => o.EntityTaxonomies.Select(e => e.TaxonomyId).Contains(taxonomyId));
                }
            }

            if (serviceModel.BudgetMin != default(int))
            {
                packages = packages.Where(o => o.PackageDetails.FirstOrDefault(e => e.Language == Omi.Base.Properties.Resources.DEFAULT_LANGUAGE).Price >= serviceModel.BudgetMin);
            }

            if (serviceModel.BudgetMax != default(int))
            {
                packages = packages.Where(o => o.PackageDetails.FirstOrDefault(e => e.Language == Omi.Base.Properties.Resources.DEFAULT_LANGUAGE).Price <= serviceModel.BudgetMax);
            }

            packages = packages.OrderByDescending(o => o.Id);

            var result = await PaginatedList <Package> .CreateAsync(packages, serviceModel.Page, serviceModel.PageSize);

            return(result);
        }
Esempio n. 2
0
        public async Task <OkObjectResult> GetPackages(PackageFilterViewModel searchParams)
        {
            var serviceModel = PackageFilterServiceModel.FromViewModel(searchParams);
            var entities     = _services.GetPackages(serviceModel);
            var pageList     = await PaginatedList <Package> .CreateAsync(entities, searchParams.Page, searchParams.PageSize);

            var result = new PageEntityViewModel <Package, PackageViewModel>(pageList, entity => PackageViewModel.FromEntity(entity));

            return(Ok(result));
        }
        public IQueryable <Package> GetPackages(PackageFilterServiceModel serviceModel)
        {
            var packages = GetPackages().AsNoTracking();

            foreach (var taxonomyId in serviceModel.TaxonomyIds)
            {
                if (taxonomyId != default)
                {
                    packages = packages.Where(o => o.EntityTaxonomies.Select(e => e.TaxonomyId).Contains(taxonomyId));
                }
            }

            if (serviceModel.BudgetMin != default)
            {
                packages = packages.Where(o => o.Details.FirstOrDefault(e => e.ForCurrentRequestLanguage()).Price >= serviceModel.BudgetMin);
            }

            if (serviceModel.BudgetMax != default)
            {
                packages = packages.Where(o => o.Details.FirstOrDefault(e => e.ForCurrentRequestLanguage()).Price <= serviceModel.BudgetMax);
            }

            if (serviceModel.Title != null)
            {
                packages = packages.Where(o => o.Details.FirstOrDefault(d => d.Title != null && (d.Title.ToLower().Contains(serviceModel.Title.ToLower()) || serviceModel.Title.ToLower().Contains(d.Title.ToLower()))) != null);
            }

            if (serviceModel.GetTypes != null)
            {
                if (serviceModel.GetTypes.Contains("perspective"))
                {
                    packages = packages.Where(o => o.IsPerspective == true);
                }
                if (serviceModel.GetTypes.Contains("non-perspective"))
                {
                    packages = packages.Where(o => o.IsPerspective != true);
                }
            }

            packages = packages.OrderByDescending(o => o.Id);

            return(packages);
        }
        public async Task <ObjectResult> GetPackages(PackageFilterViewModel viewModel)
        {
            var serviceModel = PackageFilterServiceModel.FromViewModel(viewModel);

            var entities = _packageService.GetPackages(serviceModel);

            if (string.IsNullOrEmpty(viewModel.SortField) == false)
            {
                if (viewModel.SortField == "title")
                {
                    entities = (viewModel.SortOrder == "ascend") ? entities.OrderBy(o => o.Details.FirstOrDefault().Title) : entities.OrderByDescending(o => o.Details.FirstOrDefault().Title);
                }
            }

            var result = await PaginatedList <Package> .CreateAsync(entities, serviceModel.Page, serviceModel.PageSize);

            var viewModels = new PageEntityViewModel <Package, PackageViewModel>(result, o => PackageViewModel.FromEntity(o));

            return(Ok(viewModels));
        }