public async Task ApplyAsync(IAbstractModelApplicationRequestContext context, AbstractModel abstractModel, CancellationToken cancellationToken) { var formCollection = await new FormFeature(context.Form).ReadFormAsync(cancellationToken); foreach (var key in formCollection.Keys) { var newModel = new AbstractModel(key); foreach (var value in formCollection[key]) { newModel.AddValue(value); } abstractModel.Add(newModel); } foreach (var file in formCollection.Files ?? new FormFileCollection()) { var name = file.Name; if (name == null && ContentDispositionHeaderValue.TryParse(file.ContentDisposition, out var contentDispositionHeaderValue)) { name = contentDispositionHeaderValue.Name.Value; if (name.StartsWith("\"") && name.EndsWith("\"")) { name = name.Substring(1, name.Length - 2); } } if (name != null) { var newModel = new AbstractModel(name); newModel.AddObjectValue(file); abstractModel.Add(newModel); } } }