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); }
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)); }); }
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); }
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)); }