private void TestAndMeasure(string propertyType) { var entry = GenerateEntry(propertyType); var entitySet = Model.EntityContainer.FindEntitySet(propertyType); foreach (var iteration in Benchmark.Iterations) { // Reuse the same stream WriteStream.Seek(0, SeekOrigin.Begin); using (iteration.StartMeasurement()) { using (var messageWriter = ODataMessageHelper.CreateMessageWriter(WriteStream, Model, ODataMessageKind.Response, isFullValidation: true)) { ODataWriter writer = messageWriter.CreateODataResourceSetWriter(entitySet, entitySet.EntityType()); writer.WriteStart(new ODataResourceSet { Id = new Uri("http://www.odata.org/Perf.svc") }); for (int i = 0; i < NumberOfEntries; ++i) { writer.WriteStart(entry); writer.WriteEnd(); } writer.WriteEnd(); writer.Flush(); } } } }
/// <summary> /// Writes an OData Feed with number <see cref="numberOfEntries"/> of entries <see cref="entry"/> /// </summary> /// <param name="writeStream"></param> /// <param name="edmModel"></param> /// <param name="numberOfEntries"></param> /// <param name="innerWrite"></param> /// <param name="entitySet"></param> /// <returns>The payload size</returns> protected Int64 WriteFeed(Stream writeStream, IEdmModel edmModel, long numberOfEntries, Action <ODataWriter> innerWrite, IEdmEntitySetBase entitySet) { using (var messageWriter = ODataMessageHelper.CreateMessageWriter(writeStream, edmModel)) { ODataWriter writer = messageWriter.CreateODataResourceSetWriter(entitySet); writer.WriteStart(new ODataResourceSet { Id = new Uri("http://www.odata.org/Perf.svc") }); for (long i = 0; i < numberOfEntries; ++i) { innerWrite(writer); } writer.WriteEnd(); writer.Flush(); } return(writeStream.Length); // return payload size }
public void WriteFeed() { using (var messageWriter = ODataMessageHelper.CreateMessageWriter(WriteStream, Model, ODataMessageKind.Response, isFullValidation: true)) { ODataWriter writer = messageWriter.CreateODataResourceSetWriter(entitySet, entitySet.EntityType()); writer.WriteStart(new ODataResourceSet { Id = new Uri("http://www.odata.org/Perf.svc") }); for (int i = 0; i < NumberOfEntries; ++i) { writer.WriteStart(entry); writer.WriteEnd(); } writer.WriteEnd(); writer.Flush(); } }