Example #1
0
        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()));
        }
Example #2
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
 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)));
 }
Example #6
0
        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));
        }
Example #7
0
        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));
 }
Example #9
0
        /// <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));
        }
Example #10
0
        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);
        }