Example #1
0
        public IActionResult Search(SearchPackageOptions options)
        {
            var result = packageService_
                         .SearchPackage(options)
                         .Data
                         .ToList();

            return(Json(result));
        }
        public ApiResult <Package> GetPackageById(int?id)
        {
            if (id == null)
            {
                return(ApiResult <Package> .Failed(StatusCode.BadRequest, "Null Package Id"));
            }

            var options = new SearchPackageOptions()
            {
                PackageId = id
            };

            return(ApiResult <Package> .Successful(SearchPackage(options).Data.SingleOrDefault()));
        }
        public ApiResult <IQueryable <Package> > SearchPackage(SearchPackageOptions options)
        {
            if (options == null)
            {
                return(ApiResult <IQueryable <Package> > .Failed(StatusCode.BadRequest, "Null options"));
            }

            var query = context_
                        .Set <Package>()
                        .AsQueryable();

            if (options.PackageId != null)
            {
                query = query.Where(p => p.PackageId == options.PackageId);
            }

            if (!string.IsNullOrWhiteSpace(options.Description))
            {
                query = query.Where(p => p.Description == options.Description);
            }

            if (options.Reward != null)
            {
                query = query.Where(p => p.Reward == options.Reward);
            }

            if (options.IsActive != null)
            {
                query = query.Where(p => p.IsActive == options.IsActive);
            }

            if (options.CreatedFrom != null)
            {
                query = query.Where(c => c.Created >= (options.CreatedFrom));
            }

            if (options.CreatedTo != null)
            {
                query = query.Where(c => c.Created <= options.CreatedTo);
            }

            return(ApiResult <IQueryable <Package> > .Successful(query.Take(500)));
        }