Exemple #1
0
        public async Task <IList> ExecuteOe <TResult>(String requestUri, Type baseEntityType)
        {
            var parser = new OeParser(new Uri("http://dummy/"), OeDataAdapter, EdmModel);
            var stream = new MemoryStream();
            await parser.ExecuteQueryAsync(ParseUri(requestUri), OeRequestHeaders.Default, stream, CancellationToken.None);

            stream.Position = 0;

            var   reader = new ResponseReader(EdmModel, DbDataAdapter.EntitySetMetaAdapters);
            IList fromOe;

            if (typeof(TResult) == typeof(Object))
            {
                IEnumerable <JObject> jobjects = reader.ReadOpenType(stream, baseEntityType).Select(t => JRawToEnum(t)).ToList();
                fromOe = TestHelper.SortProperty(jobjects);
            }
            else if (typeof(TResult).GetTypeInfo().IsPrimitive)
            {
                fromOe = new String[] { new StreamReader(stream).ReadToEnd() }
            }
            ;
            else
            {
                fromOe = reader.ReadFeed <TResult>(stream).ToList();
            }

            return(fromOe);
        }