public async Task <IReadOnlyCollection <Course> > Execute(
            DocumentClient client,
            Configuration configuration,
            GetAllCoursesForProvider request)
        {
            var collectionUri = UriFactory.CreateDocumentCollectionUri(
                configuration.DatabaseId,
                configuration.CoursesCollectionName);

            var query = client.CreateDocumentQuery <Course>(
                collectionUri,
                new SqlQuerySpec()
            {
                QueryText  = "select * from c where (c.CourseStatus & @CourseStatuses) <> 0 and c.ProviderUKPRN = @ProviderUkprn",
                Parameters = new SqlParameterCollection()
                {
                    new SqlParameter("@CourseStatuses", (int)request.CourseStatuses),
                    new SqlParameter("@ProviderUkprn", request.ProviderUkprn)
                }
            },
                new FeedOptions()
            {
                PartitionKey = new PartitionKey(request.ProviderUkprn),
                MaxItemCount = -1
            })
                        .AsDocumentQuery();

            return(await query.FetchAll());
        }
 public IReadOnlyCollection <Course> Execute(
     InMemoryDocumentStore inMemoryDocumentStore,
     GetAllCoursesForProvider request)
 {
     return(inMemoryDocumentStore.Courses.All
            .Where(c => c.ProviderUKPRN == request.ProviderUkprn)
            .Where(c => (c.CourseStatus & request.CourseStatuses) != 0)
            .ToList());
 }