public static PagedResults AsPagedResults(this IEnumerable <object> results, CommonQueryParameters parameters) { if (!results.Any()) { return(new PagedResults(results, 0)); } return(new PagedResults(results .Skip(parameters.Skip ?? 0) .Take(parameters.Take ?? int.MaxValue), results.Count())); }
public async Task <ActionResult <PagedResults> > GetAllUsers([ModelBinder(BinderType = typeof(JsonQueryBinder), Name = "params")] CommonQueryParameters qp = null) { var queryParameters = qp ?? new CommonQueryParameters(); var userId = User.GetLoggedInUserId <string>(); var user = await _userBusinessInstance.GetAllUsers(); var r = _commonQueryService.Filter(user, queryParameters).AsPagedResults(queryParameters); if (user == null) { throw new AppException("No User found for: " + userId); } var result = new PagedResults(r.Data, r.Pagination.Total); return(Ok(result)); }
public void Init() { AwsSecretAccessKey = ConfigurationManager.AppSettings["AwsSecretAccessKey"]; AwsAccessKeyId = ConfigurationManager.AppSettings["AwsAccessKeyId"]; VerifiedEmailAddress = ConfigurationManager.AppSettings["VerifiedEmailAddress"]; SecondaryVerifiedEmailAddress = ConfigurationManager.AppSettings["SecondaryVerifiedEmailAddress"]; // http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/SMTP.Credentials.html SmtpUsername = ConfigurationManager.AppSettings["SmtpUsername"]; SmtpPassword = ConfigurationManager.AppSettings["SmtpPassword"]; SmtpServerName = ConfigurationManager.AppSettings["SmtpServerName"]; SmtpPort = int.Parse(ConfigurationManager.AppSettings["SmtpPort"]); // 25,465,587 QueryParameters = new CommonQueryParameters( awsSecretAccessKey: AwsSecretAccessKey, awsAccessKeyId: AwsAccessKeyId, signatureMethod: CommonQueryParameters.SignatureMethodTypes.HmacSHA256); }
public IEnumerable <TEntity> Filter <TEntity>(IEnumerable <TEntity> source, CommonQueryParameters queryParameters) where TEntity : class { var result = source; foreach (var f in queryParameters.Filters) { switch (f.Type) { case "date": result = result.FilterByProperty(f.Field, f.Operator, f.DateTimeValue); break; default: var fields = f.Field.Split('-'); foreach (var field in fields) { result = result.FilterByProperty(field, f.Operator, f.Value, queryParameters.FilterEmpty); } break; } } return(result); }
public IEnumerable <TEntity> GetSortedPage <TEntity>(IEnumerable <TEntity> source, CommonQueryParameters queryParameters) where TEntity : class { return(source.OrderByProperty(queryParameters.SortBy, queryParameters.SortDir) .Skip(queryParameters.Skip.GetValueOrDefault(CommonQueryParameters.DefaultSkip)) .Take(queryParameters.Take.GetValueOrDefault(CommonQueryParameters.DefaultTake))); }
public static PagedResults <T> AsPagedResults <T>(this IQueryable <T> results, CommonQueryParameters parameters) where T : class { var totalCount = results.Count(); if (totalCount == 0) { return(new PagedResults <T>(results, 0)); } return(new PagedResults <T>(results .Skip(parameters.Skip ?? 0) .Take(parameters.Take ?? int.MaxValue).ToArray(), totalCount)); }
public static PagedResults <T> AsOrderedPagedResults <T>(this IEnumerable <T> results, CommonQueryParameters parameters) where T : class { if (!results.Any()) { return(new PagedResults <T>(results, 0)); } return(new PagedResults <T>(results .OrderByProperty(parameters.SortBy, parameters.SortDir) .Skip(parameters.Skip ?? 0) .Take(parameters.Take ?? int.MaxValue), results.Count())); }
public static PagedResult <T> GetPaged <T>(this IQueryable <T> query, CommonQueryParameters queryParameters) where T : class { return(GetPaged <T>(query, queryParameters.PageNumber, queryParameters.PageSize)); }
/// <summary> /// Dynamically generates expression tree for sorting /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="source"></param> /// <param name="qp"> /// Instance of Common Query Param. Returns the original source if SortBy is null /// </param> /// <returns></returns> public static IOrderedQueryable <TEntity> OrderByProperty <TEntity>(this IQueryable <TEntity> source, CommonQueryParameters qp) where TEntity : class { if (qp == null || string.IsNullOrEmpty(qp.SortBy)) { return(source as IOrderedQueryable <TEntity>); } return(source.OrderByProperty(qp.SortBy, qp.SortDir)); }
public static IQueryable <TEntity> Filter <TEntity>(this IQueryable <TEntity> source, CommonQueryParameters queryParameters) where TEntity : class { var result = source; foreach (var f in queryParameters.Filters) { switch (f.Type) { case "date": result = result.FilterByProperty(f.Field, f.Operator, f.DateTimeValue); break; default: result = result.FilterByProperty(f.Field, f.Operator, f.Value); break; } } return(result); }