/// <summary> /// Column alter method is not the best. /// </summary> /// <param name="relationshipId"></param> /// <param name="manyToMany"></param> /// <returns>Error message string or null for correctly edited</returns> public string EditRelationship(int relationshipId, ManyToManyRelationshipModel manyToMany) { var manyToManyRecord = _manyToManyRepository.Get(record => record.Relationship.Id == relationshipId); if (manyToManyRecord == null) { return("Invalid relashionship ID."); } var relationshipRecord = manyToManyRecord.Relationship; manyToManyRecord.ShowPrimaryList = manyToMany.ShowPrimaryList; manyToManyRecord.PrimaryListLabel = manyToMany.PrimaryListLabel; manyToManyRecord.ShowRelatedList = manyToMany.ShowRelatedList; manyToManyRecord.RelatedListLabel = manyToMany.RelatedListLabel; var primaryPart = _contentDefinitionManager.GetPartDefinition(relationshipRecord.Name + relationshipRecord.PrimaryEntity.Name + "Part"); primaryPart.Settings["DisplayName"] = manyToMany.RelatedListLabel; _contentDefinitionManager.StorePartDefinition(primaryPart); var relatedPart = _contentDefinitionManager.GetPartDefinition(relationshipRecord.Name + relationshipRecord.RelatedEntity.Name + "Part"); relatedPart.Settings["DisplayName"] = manyToMany.PrimaryListLabel; _contentDefinitionManager.StorePartDefinition(relatedPart); _manyToManyRepository.Update(manyToManyRecord); UpdateLayoutProperties(relationshipRecord.PrimaryEntity.Name, manyToManyRecord.PrimaryListProjection.LayoutRecord, manyToMany.PrimaryColumnList); UpdateLayoutProperties(relationshipRecord.RelatedEntity.Name, manyToManyRecord.RelatedListProjection.LayoutRecord, manyToMany.RelatedColumnList); return(null); }
private bool UpdateDependenySetting(string entityName, string controlFieldName, string dependentFieldName) { var part = _contentDefinitionManager.GetPartDefinition(entityName); if (part == null) { return(false); } var control = part.Fields.FirstOrDefault(x => x.Name == controlFieldName); if (control == null) { return(false); } control.Settings[control.FieldDefinition.Name + "Settings.DependencyMode"] = DependentType.Control.ToString(); var dependent = part.Fields.FirstOrDefault(x => x.Name == dependentFieldName); if (dependent == null) { return(false); } dependent.Settings["OptionSetFieldSettings.DependencyMode"] = DependentType.Dependent.ToString(); _contentDefinitionManager.StorePartDefinition(part); return(true); }
public static void AlterPartDefinition(this IContentDefinitionManager manager, string name, Action <ContentPartDefinitionBuilder> alteration) { var partDefinition = manager.LoadPartDefinition(name) ?? new ContentPartDefinition(name); var builder = new ContentPartDefinitionBuilder(partDefinition); alteration(builder); manager.StorePartDefinition(builder.Build()); }
public static async Task AlterPartDefinitionAsync(this IContentDefinitionManager manager, string name, Func <ContentPartDefinitionBuilder, Task> alterationAsync) { var partDefinition = manager.LoadPartDefinition(name) ?? new ContentPartDefinition(name); var builder = new ContentPartDefinitionBuilder(partDefinition); await alterationAsync(builder); manager.StorePartDefinition(builder.Build()); }
public ActionResult EditFieldPOST(string id, EditFieldNameViewModel viewModel) { if (!Services.Authorizer.Authorize(Permissions.EditContentTypes, T("Not allowed to edit a content type."))) { return(new HttpUnauthorizedResult()); } if (viewModel == null) { return(HttpNotFound()); } var partViewModel = _contentDefinitionService.GetPart(id); if (partViewModel == null) { return(HttpNotFound()); } // prevent null reference exception in validation viewModel.DisplayName = viewModel.DisplayName ?? String.Empty; // remove extra spaces viewModel.DisplayName = viewModel.DisplayName.Trim(); if (String.IsNullOrWhiteSpace(viewModel.DisplayName)) { ModelState.AddModelError("DisplayName", T("The Display Name name can't be empty.").ToString()); } if (_contentDefinitionService.GetPart(partViewModel.Name).Fields.Any(t => t.Name != viewModel.Name && String.Equals(t.DisplayName.Trim(), viewModel.DisplayName.Trim(), StringComparison.OrdinalIgnoreCase))) { ModelState.AddModelError("DisplayName", T("A field with the same Display Name already exists.").ToString()); } if (!ModelState.IsValid) { return(View(viewModel)); } var field = _contentDefinitionManager.GetPartDefinition(id).Fields.FirstOrDefault(x => x.Name == viewModel.Name); if (field == null) { return(HttpNotFound()); } field.DisplayName = viewModel.DisplayName; _contentDefinitionManager.StorePartDefinition(partViewModel._Definition); Services.Notifier.Information(T("Display name changed to {0}.", viewModel.DisplayName)); // redirect to the type editor if a type exists with this name var typeViewModel = _contentDefinitionService.GetType(id); if (typeViewModel != null) { return(RedirectToAction("Edit", new { id })); } return(RedirectToAction("EditPart", new { id })); }