public async Task <AdminConfigResponse> Insert(AdminConfigResponse entity) { string Id = Guid.NewGuid().ToString(); var adminConfig = new AdminConfiguration { RowKey = Id, PartitionKey = PartitionKey.AdminConfiguration, ConfigId = Id, FlagName = entity.FlagName, FlagDescription = entity.FlagDescription, FlagValue = entity.FlagValue.ToString(), }; await _storage.Insert <AdminConfiguration>(TableStorageEntityType.AdminConfiguration, adminConfig); if (entity.FlagValue == Allow.AllOff && entity.UserId != null) { var chunkedList = this.ChunkBy(entity.UserId, 100).Select(e => string.Join(",", e)).ToList(); foreach (var chunk in chunkedList) { var user = new AllowExtenedUser { RowKey = Guid.NewGuid().ToString(), PartitionKey = Id, UserId = chunk }; await _storage.Insert <AllowExtenedUser>(TableStorageEntityType.AllowExtenedUser, user); } } entity.ConfigId = new Guid(Id); return(entity); }
public async Task <AdminConfigResponse> Upsert(AdminConfigResponse entity) { var adminConfig = new AdminConfiguration { RowKey = entity.ConfigId.ToString(), PartitionKey = PartitionKey.AdminConfiguration, ConfigId = entity.ConfigId.ToString(), FlagName = entity.FlagName, FlagDescription = entity.FlagDescription, FlagValue = entity.FlagValue.ToString(), }; await _storage.Upsert <AdminConfiguration>(TableStorageEntityType.AdminConfiguration, adminConfig); var existingData = await _storage.GetAll <AllowExtenedUser>(TableStorageEntityType.AllowExtenedUser, entity.ConfigId.ToString()); foreach (var data in existingData) { await _storage.Delete <AllowExtenedUser>(TableStorageEntityType.AllowExtenedUser, data); } if (entity.FlagValue == Allow.AllOff && entity.UserId != null) { var chunkedList = this.ChunkBy(entity.UserId, 100).Select(e => string.Join(",", e)).ToList(); foreach (var chunk in chunkedList) { var user = new AllowExtenedUser { RowKey = Guid.NewGuid().ToString(), PartitionKey = entity.ConfigId.ToString(), UserId = chunk }; await _storage.Upsert <AllowExtenedUser>(TableStorageEntityType.AllowExtenedUser, user); } } return(entity); }