コード例 #1
0
        public static async Task <PackageList> SearchPackages(SearchPackageRequest request)
        {
            try
            {
                var filter = Builders <Package> .Filter.Empty;
                var total  = await CountPackagesAsync(filter);

                var query = Collections.Packages.Find(filter).Limit(request.Pagination.Limit)
                            .Skip(request.Pagination.Offset)
                            .Sort(Builders <Package> .Sort.Descending(package => package.Dates.CreatedAt));

                return(new PackageList()
                {
                    Data = query.ToList(),
                    Pagination = new PaginationOut()
                    {
                        Limit = request.Pagination.Limit,
                        Offset = request.Pagination.Offset,
                        Total = total
                    }
                });
            }
            catch (Exception e)
            {
                throw;
            }
        }
コード例 #2
0
 private static void ValidateDataFields(SearchPackageRequest request)
 {
     try
     {
         Pagination.ValidateIn(request.Pagination);
     }
     catch (Exception e)
     {
         throw e;
     }
 }
コード例 #3
0
 public static async Task <PackageList> Execute(SearchPackageRequest request)
 {
     try
     {
         return(await PackageDAO.SearchPackages(request));
     }
     catch (Exception e)
     {
         throw;
     }
 }
コード例 #4
0
 public static void ValidateRequest(SearchPackageRequest request)
 {
     try
     {
         ValidateDataFields(request);
     }
     catch (Exception e)
     {
         throw e;
     }
 }