public override void UpdateFieldSettings(string fieldType, string fieldName, SettingsDictionary settingsDictionary, IUpdateModel updateModel) { if (fieldType != "ReferenceField") { return; } var model = new ReferenceFieldSettings(); if (updateModel.TryUpdateModel(model, "ReferenceFieldSettings", null, null)) { if (model.QueryId <= 0) { model.QueryId = CreateQuery(model.ContentTypeName); } if (model.RelationshipId <= 0) { var entityName = settingsDictionary["EntityName"]; model.RelationshipId = _relationshipService.CreateOneToManyRelationship(fieldName, model.RelationshipName, model.ContentTypeName, entityName); } UpdateSettings(model, settingsDictionary, "ReferenceFieldSettings"); settingsDictionary["ReferenceFieldSettings.ContentTypeName"] = model.ContentTypeName; settingsDictionary["ReferenceFieldSettings.RelationshipName"] = model.RelationshipName; settingsDictionary["ReferenceFieldSettings.DisplayAsLink"] = model.DisplayAsLink.ToString(); settingsDictionary["ReferenceFieldSettings.QueryId"] = model.QueryId.ToString(CultureInfo.InvariantCulture); settingsDictionary["ReferenceFieldSettings.RelationshipId"] = model.RelationshipId.ToString(CultureInfo.InvariantCulture); } }
public override IEnumerable<TemplateViewModel> PartFieldEditorUpdate(ContentPartFieldDefinitionBuilder builder, IUpdateModel updateModel) { if (builder.FieldType != "ReferenceField") { yield break; } var model = new ReferenceFieldSettings(); if (updateModel.TryUpdateModel(model, "ReferenceFieldSettings", null, null)) { UpdateSettings(model, builder, "ReferenceFieldSettings"); if (model.QueryId <= 0) { model.QueryId = CreateQuery(model.ContentTypeName.ToString(CultureInfo.InvariantCulture)); } if (model.RelationshipId <= 0) { var httpContext = _httpContextAccessor.Current(); var routeValues = httpContext.Request.RequestContext.RouteData.Values; var entityName = routeValues["id"].ToString(); model.RelationshipId = _relationshipService.CreateOneToManyRelationship(builder.Name, model.RelationshipName, model.ContentTypeName, entityName); } if (model.QueryId <= 0 || model.RelationshipId <= 0) { updateModel.AddModelError("QueryOrRelation", T("Invalid Query or Relationship Id")); yield break; } UpdateSettings(model, builder, "ReferenceFieldSettings"); builder.WithSetting("ReferenceFieldSettings.DisplayAsLink", model.DisplayAsLink.ToString(CultureInfo.InvariantCulture)); builder.WithSetting("ReferenceFieldSettings.ContentTypeName", model.ContentTypeName.ToString(CultureInfo.InvariantCulture)); builder.WithSetting("ReferenceFieldSettings.RelationshipName", model.RelationshipName.ToString(CultureInfo.InvariantCulture)); builder.WithSetting("ReferenceFieldSettings.RelationshipId", model.RelationshipId.ToString(CultureInfo.InvariantCulture)); builder.WithSetting("ReferenceFieldSettings.QueryId", model.QueryId.ToString(CultureInfo.InvariantCulture)); } yield return DefinitionTemplate(model); }
public override void UpdateFieldSettings(string fieldType, string fieldName, SettingsDictionary settingsDictionary, IUpdateModel updateModel) { if (fieldType != "ReferenceField") { return; } var model = new ReferenceFieldSettings(); if (updateModel.TryUpdateModel(model, "ReferenceFieldSettings", null, null)) { if (model.QueryId <= 0) { model.QueryId = CreateQuery(model.ContentTypeName); } if (model.RelationshipId <= 0) { var entityName = settingsDictionary["EntityName"]; model.RelationshipId = _relationshipService.CreateOneToManyRelationship(fieldName, model.RelationshipName, model.ContentTypeName, entityName); } UpdateSettings(model, settingsDictionary, "ReferenceFieldSettings"); settingsDictionary["ReferenceFieldSettings.ContentTypeName"] = model.ContentTypeName; settingsDictionary["ReferenceFieldSettings.RelationshipName"] = model.RelationshipName; settingsDictionary["ReferenceFieldSettings.DisplayAsLink"] = model.DisplayAsLink.ToString(); settingsDictionary["ReferenceFieldSettings.QueryId"] = model.QueryId.ToString(CultureInfo.InvariantCulture); settingsDictionary["ReferenceFieldSettings.RelationshipId"] = model.RelationshipId.ToString(CultureInfo.InvariantCulture); } }