Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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());
        }