public ActionResult Edit(FieldDefinitionPrimaryKey fieldDefinitionPrimaryKey, EditViewModel viewModel) { if (!ModelState.IsValid) { return(ViewEdit(fieldDefinitionPrimaryKey, viewModel)); } var fieldDefinitionData = HttpRequestStorage.DatabaseEntities.FieldDefinitionDatas.GetFieldDefinitionDataByFieldDefinition(fieldDefinitionPrimaryKey); if (fieldDefinitionData == null) { fieldDefinitionData = new FieldDefinitionData(fieldDefinitionPrimaryKey.EntityObject); HttpRequestStorage.DatabaseEntities.AllFieldDefinitionDatas.Add(fieldDefinitionData); } var fieldDefinitionDefault = CurrentFirmaSession.IsSitkaAdministrator() ? HttpRequestStorage.DatabaseEntities.FieldDefinitionDefaults.GetFieldDefinitionDefaultByFieldDefinition(fieldDefinitionPrimaryKey) : null; if (CurrentFirmaSession.IsSitkaAdministrator() && fieldDefinitionDefault == null) { // need to insert a default fieldDefinitionDefault = new FieldDefinitionDefault(fieldDefinitionData.FieldDefinition, "<p><em>not defined</em></p>"); HttpRequestStorage.DatabaseEntities.FieldDefinitionDefaults.Add(fieldDefinitionDefault); } viewModel.UpdateModel(fieldDefinitionData, fieldDefinitionDefault, HttpRequestStorage.DatabaseEntities); SetMessageForDisplay("Field Definition successfully saved."); return(RedirectToAction(new SitkaRoute <FieldDefinitionController>(x => x.Edit(fieldDefinitionData.FieldDefinition)))); }
public void UpdateModel(FieldDefinitionData fieldDefinitionData, FieldDefinitionDefault fieldDefinitionDefault, DatabaseEntities databaseEntities) { // delete file resources for any images that are no longer referenced in the HTML var imagesToDelete = FieldDefinitionDataValue == null ? fieldDefinitionData.FieldDefinitionDataImages.ToList() : fieldDefinitionData.FieldDefinitionDataImages.Where(x => !FieldDefinitionDataValue.ToString().ContainsCaseInsensitive(x.FileResourceInfo.GetFileResourceGUIDAsString())).ToList(); foreach (var image in imagesToDelete) { // will cascade delete the FieldDefinitionDataImage image.FileResourceInfo.DeleteFull(databaseEntities); } fieldDefinitionData.FieldDefinitionDataValueHtmlString = FieldDefinitionDataValue; fieldDefinitionData.FieldDefinitionLabel = string.IsNullOrWhiteSpace(FieldDefinitionLabel) ? null : FieldDefinitionLabel; if (fieldDefinitionDefault != null) { fieldDefinitionDefault.DefaultDefinitionHtmlString = FieldDefinitionDefault; } }
public EditViewModel(FieldDefinitionData fieldDefinitionData, FieldDefinitionDefault fieldDefinitionDefault) { FieldDefinitionDataValue = fieldDefinitionData?.FieldDefinitionDataValueHtmlString; FieldDefinitionLabel = fieldDefinitionData?.FieldDefinitionLabel; FieldDefinitionDefault = fieldDefinitionDefault != null && !string.IsNullOrWhiteSpace(fieldDefinitionDefault.DefaultDefinition) ? fieldDefinitionDefault.DefaultDefinitionHtmlString : new HtmlString("<p><em>not defined</em></p>"); }