public static object GetData(this IQueryable <Registration> query, RegistrationFilter filter, string sort, string[] fields, int page, int limit, int total) { query = query.Filter(filter); query = query.Pagination(page, limit); query = query.Sort(sort); var result = query.SelectField(fields, total); return(result); }
public object GetDetail(RegistrationFilter filter, string sort, string[] fields, int page, int limit) { var query = Get(); int totalPage = 0; if (limit > -1) { totalPage = query.Count() / limit; } return(query.GetData(filter, sort, fields, page, limit, totalPage)); }
public IActionResult Get([FromQuery] RegistrationFilter filter, [FromQuery] string sort, [FromQuery] string[] fields, [FromQuery] int page = 0, [FromQuery] int limit = -1) { try { var domain = _uow.GetService <RegistrationDomain>(); if (fields.Length == 0) { fields = new string[] { RegistrationFieldsDetail.INFO }; } var result = domain.GetDetail(filter, sort, fields, page, limit); return(Success(result)); } catch (Exception ex) { return(Error(ex.Message)); } }
/// <summary> /// Determines whether a contracttype is supported by registration sources. /// </summary> /// <param name="contractType">The type of the contract.</param> /// <param name="registrationFilter">Exclude concrete types or not.</param> /// <returns><value>true</value> if the type is supported by a registration source, otherwise <value>false</value>.</returns> public bool IsSupportedByRegistrationSource(Type contractType, RegistrationFilter registrationFilter) { IEnumerable<IRegistrationSource> registrationSources = this.RegistrationSources; if(registrationFilter == RegistrationFilter.SkipResolveAnything) { registrationSources = registrationSources .Where(registrationSource => registrationSource.GetType() != typeof (ConcreteTypeRegistrationSource)); } return registrationSources .Select(registrationSource => registrationSource.SourceSupportsTypeSelector) .Any(sourceSupportsTypeSelector => sourceSupportsTypeSelector(contractType)); }
private static IQueryable <Registration> Filter(this IQueryable <Registration> query, RegistrationFilter filter) { if (filter.Username != null) { query = query.Where(s => filter.Username.Contains(s.Username)); } return(query); }