private IEnumerable<VoyageDTO> Filter(IEnumerable<VoyageDTO> voyages, VoyageSortOrders? sortOrder = null, VoyageStatus? status = null) { if (status != null) voyages = voyages.Where(x => x.Status == (BLL.DTO.VoyageStatus)status); if (sortOrder != null) { switch ((VoyageSortOrders)sortOrder) { case VoyageSortOrders.Name: voyages = voyages.OrderBy(x => x.Name); break; case VoyageSortOrders.Status: voyages = voyages.OrderBy(x => x.Status); break; case VoyageSortOrders.StartTime: voyages = voyages.OrderBy(x => x.RequestedStartTime); break; case VoyageSortOrders.EndTime: voyages = voyages.OrderBy(x => x.RequestedEndTime); break; case VoyageSortOrders.LeadTime: voyages = voyages.OrderBy(x => x.RequestedEndTime - x.RequestedStartTime); break; default: voyages = voyages.OrderBy(x => x.Name); break; } } return voyages; }
public IEnumerable<VoyageViewModel> GetVoyages(VoyageSortOrders? sortOrder = null, VoyageStatus? status = null) { var voyages = _voyageService.GetVoyages(); voyages = Filter(voyages, sortOrder, status); return Mapper.Map<List<VoyageViewModel>>(voyages); }