示例#1
0
        private static DynamicTableEntity ToEntity(OnboardingState model)
        {
            var properties = TableEntity.Flatten(model, null);
            var entity     = new DynamicTableEntity(
                GetPartitionKey(model.Id), GetRowKey(model.Id), model.ETag, properties);

            return(entity);
        }
示例#2
0
        public Task AddFlattenAsync <T>(T entity) where T : IKeyAccess
        {
            var opcon = new OperationContext();
            var dyn   = new DynamicTableEntity(entity.GetPartitionKey(), entity.GetRowKey())
            {
                Properties = TableEntity.Flatten(entity, opcon)
            };
            var op = TableOperation.Insert(dyn);

            return(_table.ExecuteAsync(op));
        }
 public async Task WriteNewUser(UserModel user, List<GroupModel>, groups)
 {
     //...assume user table connection is created
     var entity = new DynamicTableEntity(partitionKey, rowKey);
     entity.Properties = TableEntity.Flatten(user, new OperationContext());
     await userTable.ExecuteAsync(TableOperation.Insert(user));
     //...assume group table connection is created
     groups.ForEach(async g =>
         {
             var groupsEntity = new DynamicTableEntity(user.UserId, Guid.NewGuid().ToString());
             groupsEntity.Properties = TableEntity.Flatten(g, new OperationContext());
             await groupsTable.ExecuteAsync(TableOperation.Insert(groupsEntity));
         });
 }
示例#4
0
        private DynamicTableEntity GetDynamicEntity(StorageEntity entity)
        {
            if (!entity.CreatedOn.HasValue)
            {
                entity.CreatedOn = DateTime.UtcNow;
            }

            OperationContext context = new OperationContext();
            IDictionary <string, EntityProperty> properties = TableEntity.Flatten(entity, context);

            properties.Remove("PartitionKey");
            properties.Remove("RowKey");

            DynamicTableEntity dynamicEntity = new DynamicTableEntity(entity.PartitionKey, entity.RowKey)
            {
                ETag       = "*",
                Properties = properties
            };

            return(dynamicEntity);
        }
示例#5
0
        public static DynamicTableEntity ToDynamicTableEntity(this object entity, string partitionKey, string rowKey)
        {
            var props = TableEntity.Flatten(entity, new OperationContext());

            return(new DynamicTableEntity(partitionKey, rowKey, null, props));
        }