Example #1
0
 public SortSamplesViewModel(SamplesSortState sortOrder)
 {
     NameSampleAscSort = sortOrder == SamplesSortState.NameSampleAsc ? SamplesSortState.NameSampleDesc : SamplesSortState.NameSampleAsc;
     MassSampleAscSort = sortOrder == SamplesSortState.MassSampleAsc ? SamplesSortState.MassSampleDesc : SamplesSortState.MassSampleAsc;
     IdMaterialAscSort = sortOrder == SamplesSortState.IdMaterialAsc ? SamplesSortState.IdMaterialDesc : SamplesSortState.IdMaterialAsc;
     Current           = sortOrder;
 }
Example #2
0
        // GET: Materials
        public IActionResult Index(string material, double?mass, string property, int page = 1, SamplesSortState sortOrder = SamplesSortState.NameSampleAsc)
        {
            int pageSize = 10;
            IQueryable <Samples> source = _context.Samples.Include(s => s.IdMaterialNavigation);

            if (material != null)
            {
                source = source.Where(x => x.IdMaterialNavigation.NameMaterial == material);
            }

            if (mass != null && mass != 0)
            {
                source = source.Where(x => x.IdMaterialNavigation.MassMaterial.Value == mass.Value);
            }

            if (property != null)
            {
                source = source.Where(x => x.IdMaterialNavigation.Property == property);
            }

            switch (sortOrder)
            {
            case SamplesSortState.NameSampleAsc:
                source = source.OrderBy(x => x.NameSample);
                break;

            case SamplesSortState.NameSampleDesc:
                source = source.OrderByDescending(x => x.NameSample);
                break;

            case SamplesSortState.MassSampleAsc:
                source = source.OrderBy(x => x.MassSample);
                break;

            case SamplesSortState.MassSampleDesc:
                source = source.OrderByDescending(x => x.MassSample);
                break;

            case SamplesSortState.IdMaterialAsc:
                source = source.OrderBy(x => x.IdMaterial);
                break;

            case SamplesSortState.IdMaterialDesc:
                source = source.OrderByDescending(x => x.IdMaterial);
                break;

            default:
                source = source.OrderBy(x => x.NameSample);
                break;
            }



            var              count    = source.Count();
            var              items    = source.Skip((page - 1) * pageSize).Take(pageSize);
            PageViewModel    pageView = new PageViewModel(count, page, pageSize);
            SamplesViewModel ivm      = new SamplesViewModel
            {
                PageViewModel   = pageView,
                SortViewModel   = new SortSamplesViewModel(sortOrder),
                FilterViewModel = new FilterSamplesViewModel(material, mass, property),
                Samples         = items
            };

            return(View(ivm));
        }