public static Reclamation[] GetReclamations( string clientId, ReclamationFilter filter, ReclamationSortFields sortField, int startIndex, int size ) { using ( var dc = new DCFactory<StoreDataContext>() ) { //TODO add DatatLoadOptions if required //DataLoadOptions options = new DataLoadOptions(); //options.LoadWith<OrderLine>( l => l.OrderLineStatusChanges ); //options.LoadWith<OrderLine>( l => l.Order ); //dc.LoadOptions = options; var reclamations = dc.DataContext.Reclamations.Where( r => r.ClientID == clientId ); if ( filter != null ) { reclamations = ApplyReclamationFilter( reclamations, filter ); } reclamations = ApplyReclamationSort( reclamations, sortField ); return reclamations.Skip( startIndex ).Take( size ).ToArray(); } }
private static IQueryable<Reclamation> ApplyReclamationSort( IQueryable<Reclamation> reclamations, ReclamationSortFields sortField ) { switch ( sortField ) { case ReclamationSortFields.ReclamationDateAsc: reclamations = reclamations.OrderBy( r => r.ReclamationDate ); break; case ReclamationSortFields.ReclamationDateDesc: reclamations = reclamations.OrderByDescending( r => r.ReclamationDate ); break; case ReclamationSortFields.Status: reclamations = reclamations.OrderBy( r => r.CurrentStatus ); break; } return reclamations; }