Ejemplo n.º 1
0
        private async Task SerializeAsync(ODataWriter writer)
        {
            var resourceSet = new ODataResourceSet()
            {
                Count = Count
            };

            writer.WriteStart(resourceSet);

            int count  = 0;
            T   entity = default;
            EntityPropertiesInfo entityPropertiesInfo = default;

            while (await _entities.MoveNext())
            {
                entity = _entities.Current;
                _stack.Add(entity);
                WriteEntry(writer, entity, ref entityPropertiesInfo);
                _stack.Remove(entity);
                count++;
            }

            if (PageSize > 0 && count > 0 && (Count ?? Int32.MaxValue) > count)
            {
                resourceSet.NextPageLink = BuildNextPageLink(OeSkipTokenParser.GetSkipToken(_edmModel, GetKeys(entity)));
            }

            writer.WriteEnd();
        }
Ejemplo n.º 2
0
        private void WriteEntry(ODataWriter writer, Object entity, ref EntityPropertiesInfo entityPropertiesInfo)
        {
            if (entityPropertiesInfo.EdmEntityType == null)
            {
                entityPropertiesInfo = GetProperties(entity);
            }

            ODataResource entry = OeDataContext.CreateEntry(entity, entityPropertiesInfo.Structurals);

            writer.WriteStart(entry);

            foreach (PropertyInfo navigationProperty in entityPropertiesInfo.Navigations)
            {
                WriteNavigationProperty(writer, entity, navigationProperty);
            }

            writer.WriteEnd();
        }
Ejemplo n.º 3
0
 public RowInfo(EntityKeyInfo <TObject> partitionKey, EntityKeyInfo <TObject> rowKey, EntityPropertiesInfo <TObject> properties)
 {
     PartitionKey = partitionKey;
     RowKey       = rowKey;
     Properties   = properties;
 }