Example #1
0
        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));
        }
Example #2
0
        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);
        }