public override IDisplayResult Edit(TransformalizeFormPart part) { var commands = new AdoFormCommands(); var process = _configurationContainer.CreateScope(part.Arrangement.Text, part.ContentItem, new Dictionary <string, string>(), false).Resolve <Process>(); _settings.ApplyCommonSettings(process); using (var scope = _container.CreateScope(process, _logger)) { if (scope.IsRegistered <AdoFormCommandWriter>()) { commands = scope.Resolve <AdoFormCommandWriter>().Write(); } } return(Initialize <EditTransformalizeFormPartViewModel>("TransformalizeFormPart_Edit", model => { model.TransformalizeFormPart = part; model.Arrangement = part.Arrangement; model.LocationEnableHighAccuracy = part.LocationEnableHighAccuracy; model.LocationMaximumAge = part.LocationMaximumAge; model.LocationTimeout = part.LocationTimeout; model.CreateCommand = commands.Create; model.InsertCommand = commands.Insert; model.UpdateCommand = commands.Update; model.SelectCommand = commands.Select; }).Location("Content:1")); }
private Process LoadInternal(string arrangement, ContentItem item, IDictionary <string, string> parameters = null, ISerializer serializer = null) { Process process; if (parameters != null) { foreach (var kv in parameters) { _parameters[kv.Key] = kv.Value; } } using (MiniProfiler.Current.Step("Load")) { _configurationContainer.Serializer = serializer; process = _configurationContainer.CreateScope(arrangement, item, _parameters).Resolve <Process>(); } // in case common settings were not applied when transforming / validating parameters _settings.ApplyCommonSettings(process); // translates file content item id to full path if (process.Connections.Any()) { var connection = process.Connections.FirstOrDefault(c => _fileBasedProviders.Contains(c.Provider) && c.File.Length == Common.IdLength && !c.File.Contains('.')); if (connection != null) { var filePart = _fileService.GetFilePart(connection.File).Result; if (filePart != null) { connection.File = System.IO.Path.Combine(_formFileStore.Path, filePart.FullPath.Text); } } } if (process.Errors().Any() || process.Log.Any(l => l.LogLevel == LogLevel.Error)) { process.Status = 500; process.Message = "Process has errors."; } else { process.Status = 200; process.Message = "Ok"; } return(process); }
public override async Task <IDisplayResult> UpdateAsync(TransformalizeTaskPart part, IUpdateModel updater, UpdatePartEditorContext context) { var model = new EditTransformalizeTaskPartViewModel(); if (await updater.TryUpdateModelAsync(model, Prefix)) { part.Arrangement.Text = model.Arrangement.Text; } try { var logger = new MemoryLogger(LogLevel.Error); var process = _container.CreateScope(model.Arrangement.Text, part.ContentItem, new Dictionary <string, string>(), false).Resolve <Process>(); if (process.Errors().Any()) { foreach (var error in process.Errors()) { updater.ModelState.AddModelError(Prefix, S[error]); } } if (process.Warnings().Any()) { foreach (var warning in process.Warnings()) { _notifier.Warning(H[warning]); } } } catch (Exception ex) { updater.ModelState.AddModelError(Prefix, S[ex.Message]); } if (updater.ModelState.IsValid) { _signal.SignalToken(Common.GetCacheKey(part.ContentItem.Id)); } return(Edit(part, context)); }
public override async Task <IDisplayResult> UpdateAsync(TransformalizeReportPart part, IUpdateModel updater, UpdatePartEditorContext context) { // this driver override makes sure all the // part fields are updated before the arrangement model is updated / validated //_notifier.Information(H["Part - Bulk Actions:{0}", part.BulkActions.Value]); //_notifier.Information(H["Part - Bulk Action Field:{0}", part.BulkActionValueField.Text]); var model = new EditTransformalizeReportPartViewModel(); if (await updater.TryUpdateModelAsync(model, Prefix)) { //_notifier.Information(H["Model - Bulk Actions:{0}", model.BulkActions.Value]); //_notifier.Information(H["Model - Bulk Action Field:{0}", model.BulkActionValueField.Text]); part.Arrangement.Text = model.Arrangement.Text; part.PageSizes.Text = model.PageSizes.Text; part.PageSizesExtended.Text = model.PageSizes.Text; part.BulkActions.Value = model.BulkActions.Value; part.BulkActionValueField.Text = model.BulkActionValueField.Text; part.BulkActionCreateTask.Text = model.BulkActionCreateTask.Text; part.BulkActionWriteTask.Text = model.BulkActionWriteTask.Text; part.BulkActionSummaryTask.Text = model.BulkActionSummaryTask.Text; part.BulkActionRunTask.Text = model.BulkActionRunTask.Text; part.BulkActionSuccessTask.Text = model.BulkActionSuccessTask.Text; part.BulkActionFailTask.Text = model.BulkActionFailTask.Text; part.Map.Value = model.Map.Value; part.MapColorField.Text = model.MapColorField.Text; part.MapDescriptionField.Text = model.MapDescriptionField.Text; part.MapLatitudeField.Text = model.MapLatitudeField.Text; part.MapLongitudeField.Text = model.MapLongitudeField.Text; part.MapRadiusField.Text = model.MapRadiusField.Text; part.MapOpacityField.Text = model.MapOpacityField.Text; part.Calendar.Value = model.Calendar.Value; part.CalendarClassField.Text = model.CalendarClassField.Text; part.CalendarIdField.Text = model.CalendarIdField.Text; part.CalendarTitleField.Text = model.CalendarTitleField.Text; part.CalendarUrlField.Text = model.CalendarUrlField.Text; part.CalendarStartField.Text = model.CalendarStartField.Text; part.CalendarEndField.Text = model.CalendarEndField.Text; } if (model.BulkActions.Value) { if (string.IsNullOrEmpty(model.BulkActionValueField.Text)) { updater.ModelState.AddModelError(Prefix, S["Please set the bulk action value field for bulk actions."]); } } CheckPageSizes(model.PageSizes, updater); CheckPageSizes(model.PageSizesExtended, updater); try { var logger = new MemoryLogger(LogLevel.Error); var process = _container.CreateScope(model.Arrangement.Text, part.ContentItem, new Dictionary <string, string>(), false).Resolve <Process>(); if (process.Errors().Any()) { foreach (var error in process.Errors()) { updater.ModelState.AddModelError(Prefix, S[error]); } } if (process.Warnings().Any()) { foreach (var warning in process.Warnings()) { _notifier.Warning(H[warning]); } } if (process.Entities.Any()) { var fields = process.Entities[0].GetAllFields().ToArray(); if (part.BulkActions.Value) { if (!string.IsNullOrEmpty(part.BulkActionValueField.Text)) { if (fields.All(f => f.Alias != part.BulkActionValueField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} does not exist.", part.BulkActionValueField.Text]); } } } if (part.Calendar.Value) { if (fields.All(f => f.Alias != part.CalendarIdField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for calendar id does not exist.", part.CalendarIdField.Text]); } if (fields.All(f => f.Alias != part.CalendarUrlField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for calendar URL does not exist.", part.CalendarUrlField.Text]); } if (fields.All(f => f.Alias != part.CalendarTitleField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for calendar title does not exist.", part.CalendarTitleField.Text]); } if (fields.All(f => f.Alias != part.CalendarClassField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for calendar class does not exist.", part.CalendarClassField.Text]); } if (fields.All(f => f.Alias != part.CalendarStartField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for calendar start does not exist.", part.CalendarStartField.Text]); } if (fields.All(f => f.Alias != part.CalendarEndField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for calendar end does not exist.", part.CalendarEndField.Text]); } } if (part.Map.Value) { if (fields.All(f => f.Alias != part.MapDescriptionField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for map description does not exist.", part.MapDescriptionField.Text]); } if (fields.All(f => f.Alias != part.MapLatitudeField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for map latitude does not exist.", part.MapLatitudeField.Text]); } if (fields.All(f => f.Alias != part.MapLongitudeField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for map longitude does not exist.", part.MapLongitudeField.Text]); } // Map Color #ffc0cb if (string.IsNullOrWhiteSpace(part.MapColorField.Text)) { part.MapColorField.Text = "#ffc0cb"; } else { if (fields.All(f => f.Alias != part.MapColorField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for map color does not exist.", part.MapColorField.Text]); } } // Map Opacity if (string.IsNullOrWhiteSpace(part.MapOpacityField.Text)) { part.MapOpacityField.Text = "0.8"; } else { if (double.TryParse(part.MapOpacityField.Text, out double opacity)) { if (opacity < 0 || opacity > 1) { updater.ModelState.AddModelError(Prefix, S["Map opacity must be between 0 and 1."]); } } else { if (fields.All(f => f.Alias != part.MapOpacityField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for map opacity does not exist.", part.MapOpacityField.Text]); } } } // Map Radius if (string.IsNullOrWhiteSpace(part.MapRadiusField.Text)) { part.MapRadiusField.Text = "7"; } else { if (!int.TryParse(part.MapRadiusField.Text, out int radius)) { if (fields.All(f => f.Alias != part.MapRadiusField.Text)) { updater.ModelState.AddModelError(Prefix, S["The field {0} used for map radius does not exist.", part.MapRadiusField.Text]); } } } } } else { updater.ModelState.AddModelError(Prefix, S["Please define an entity."]); } } catch (Exception ex) { updater.ModelState.AddModelError(Prefix, S[ex.Message]); } if (updater.ModelState.IsValid) { _signal.SignalToken(Common.GetCacheKey(part.ContentItem.Id)); } return(Edit(part, context)); }