// GET: TypeOfFaults public async Task <IActionResult> Index(int?model, string name, string methodRepair, string client, int page = 1, TypeOfFault.SortState sortOrder = TypeOfFault.SortState.NameAsc) { int pageSize = 20; IQueryable <TypeOfFault> source = _context.TypeOfFaults.Include(t => t.RepairedModel); if (model != null && model != 0) { source = source.Where(t => t.RepairedModel.RepairedModelId == model.Value); } if (!String.IsNullOrEmpty(name)) { source = source.Where(t => t.Name.Contains(name)); } if (!String.IsNullOrEmpty(methodRepair)) { source = source.Where(t => t.MethodRepair.Contains(methodRepair)); } if (!String.IsNullOrEmpty(client)) { source = _context.Orders.Include(o => o.TypeOfFault) .Include(o => o.RepairedModel) .Where(o => o.FullNameCustumer.Contains(client)) .Select(o => new TypeOfFault() { Name = o.TypeOfFault.Name, RepairedModelId = o.RepairedModelId.Value, RepairedModel = o.RepairedModel, MethodRepair = o.TypeOfFault.MethodRepair, WorkPrice = o.TypeOfFault.WorkPrice }); } source = TypesOfFaultsSort(source, sortOrder); int count = await source.CountAsync(); var items = await source.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync(); var models = await _context.RepairedModels.ToListAsync(); var viewModel = new TypeOfFaultsViewModel() { TypeOfFaults = items, TypesOfFaultsFilter = new TypesOfFaultsFilter(models, model, name, methodRepair, client), TypesOfFaultsSort = new TypesOfFaultsSort(sortOrder), PageViewModel = new PageViewModel(count, page, pageSize) }; return(View(viewModel)); }
public TypesOfFaultsSort(TypeOfFault.SortState sortOrder) { RepairedModelSort = sortOrder == TypeOfFault.SortState.RepairedModelAsc ? TypeOfFault.SortState.RepairedModelDesc : TypeOfFault.SortState.RepairedModelAsc; NameSort = sortOrder == TypeOfFault.SortState.NameAsc ? TypeOfFault.SortState.NameDesc : TypeOfFault.SortState.NameAsc; MethodRepairSort = sortOrder == TypeOfFault.SortState.MethodRepairAsc ? TypeOfFault.SortState.MethodRepairDesc : TypeOfFault.SortState.MethodRepairAsc; WorkPriceSort = sortOrder == TypeOfFault.SortState.WorkPriceAsc ? TypeOfFault.SortState.WorkPriceDesc : TypeOfFault.SortState.WorkPriceAsc; Current = sortOrder; }
private IQueryable <TypeOfFault> TypesOfFaultsSort(IQueryable <TypeOfFault> typesOfFaults, TypeOfFault.SortState sortOrder) { switch (sortOrder) { case TypeOfFault.SortState.NameAsc: return(typesOfFaults.OrderBy(t => t.Name)); case TypeOfFault.SortState.NameDesc: return(typesOfFaults.OrderByDescending(t => t.Name)); case TypeOfFault.SortState.RepairedModelAsc: return(typesOfFaults.OrderBy(t => t.RepairedModel.Name)); case TypeOfFault.SortState.RepairedModelDesc: return(typesOfFaults.OrderByDescending(t => t.RepairedModel.Name)); case TypeOfFault.SortState.MethodRepairAsc: return(typesOfFaults.OrderBy(t => t.MethodRepair)); case TypeOfFault.SortState.MethodRepairDesc: return(typesOfFaults.OrderByDescending(t => t.MethodRepair)); case TypeOfFault.SortState.WorkPriceAsc: return(typesOfFaults.OrderBy(t => t.WorkPrice)); case TypeOfFault.SortState.WorkPriceDesc: return(typesOfFaults.OrderByDescending(t => t.WorkPrice)); default: return(typesOfFaults.OrderBy(t => t.Name)); } }