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));
        }
Пример #3
0
 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);
 }