public async Task <IEnumerable <Movie> > Query( MovieFilters filters, IEnumerable <string> columnNames = null) { var whereFilters = new List <string>(); var parameters = new DynamicParameters(); //Filter by specific ids if (filters.MovieIds != null) { //remove dupes filters.MovieIds = filters.MovieIds.Distinct(); whereFilters.Add("Movies.id in @ids"); parameters.Add("ids", filters.MovieIds); } var sql = ""; if (whereFilters.Count > 0) { //append the where clause sql = $@"where {string.Join(" and ", whereFilters)}"; } // sql = ApplyOrderToQuery(sql, filters.SortField, filters.SortDirection); sql += " order by sortTitle asc"; sql = ApplyLimitersToQuery(sql, filters.Top, filters.Skip); return(await this.Query(sql, parameters, columnNames)); }
public MovieFilters GetArgumentFilters <T>(ResolveFieldContext <T> ctx) { var filters = new MovieFilters(); filters.MovieIds = ctx.GetArgumentOrDefault("ids", (IEnumerable <int>)null); filters.Top = ctx.GetArgumentOrDefault("top", (int?)null); filters.Skip = ctx.GetArgumentOrDefault("skip", (int?)null); return(filters); }