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; } }
private static void ValidateDataFields(SearchPackageRequest request) { try { Pagination.ValidateIn(request.Pagination); } catch (Exception e) { throw e; } }
public static async Task <PackageList> Execute(SearchPackageRequest request) { try { return(await PackageDAO.SearchPackages(request)); } catch (Exception e) { throw; } }
public static void ValidateRequest(SearchPackageRequest request) { try { ValidateDataFields(request); } catch (Exception e) { throw e; } }