public async Task UpdateDataFormAsync(string tenant, string id, UpdateDataformRequest dataform) { using (var session = _documentStore.OpenAsyncSession(tenant)) { var doc = await session.LoadAsync <DataForm>(id); if (doc == null) { return; } doc.Description = dataform.Description; doc.Title = dataform.Title; doc.Fields = new List <FieldConfiguration>(dataform.Fields.Project().To <FieldConfiguration>()); doc.Plugins = dataform.Plugins; doc.Components = dataform.Components; doc.AuthorizedClaims = dataform.AuthorizedClaims?.ToArray() ?? new string[0]; doc.DataSourceId = dataform.DataSourceId; doc.RestrictDataAccessByOwner = dataform.RestrictDataAccessByOwner; if (!string.IsNullOrWhiteSpace(dataform.NewDataSourceName)) { var factory = new DataSourceFactory(session); doc.DataSourceId = (await factory.CreateDataSourceAsync(dataform.NewDataSourceName)).Id; } await session.SaveChangesAsync(); } }
public async Task <IActionResult> Put(string id, [FromBody] UpdateDataformRequest dataform) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (string.IsNullOrWhiteSpace(dataform.DataSourceId) && string.IsNullOrWhiteSpace(dataform.NewDataSourceName)) { return(BadRequest("Expected dataSourceId value or newDataSourceName.")); } await _dataFormsProvider.UpdateDataFormAsync(Tenant, id, dataform); return(new NoContentResult()); }