protected void On(FieldEnabled @event, FieldRegistry registry) { SchemaDef = SchemaDef.EnableField(@event.FieldId.Id); }
public override bool ApplyEvent(IEvent @event) { var previousSchema = SchemaDef; switch (@event) { case SchemaCreated e: { Id = e.SchemaId.Id; SchemaDef = e.Schema; SchemaFieldsTotal = e.Schema.MaxId(); AppId = e.AppId; return(true); } case FieldAdded e: { if (e.ParentFieldId != null) { var field = e.Properties.CreateNestedField(e.FieldId.Id, e.Name); SchemaDef = SchemaDef.UpdateField(e.ParentFieldId.Id, x => ((ArrayField)x).AddField(field)); } else { var partitioning = Partitioning.FromString(e.Partitioning); var field = e.Properties.CreateRootField(e.FieldId.Id, e.Name, partitioning); SchemaDef = SchemaDef.DeleteField(e.FieldId.Id); SchemaDef = SchemaDef.AddField(field); } SchemaFieldsTotal = Math.Max(SchemaFieldsTotal, e.FieldId.Id); break; } case SchemaUIFieldsConfigured e: { if (e.FieldsInLists != null) { SchemaDef = SchemaDef.SetFieldsInLists(e.FieldsInLists); } if (e.FieldsInReferences != null) { SchemaDef = SchemaDef.SetFieldsInReferences(e.FieldsInReferences); } break; } case SchemaCategoryChanged e: { SchemaDef = SchemaDef.ChangeCategory(e.Name); break; } case SchemaPreviewUrlsConfigured e: { SchemaDef = SchemaDef.SetPreviewUrls(e.PreviewUrls); break; } case SchemaScriptsConfigured e: { SchemaDef = SchemaDef.SetScripts(e.Scripts); break; } case SchemaFieldRulesConfigured e: { SchemaDef = SchemaDef.SetFieldRules(e.FieldRules); break; } case SchemaPublished: { SchemaDef = SchemaDef.Publish(); break; } case SchemaUnpublished: { SchemaDef = SchemaDef.Unpublish(); break; } case SchemaUpdated e: { SchemaDef = SchemaDef.Update(e.Properties); break; } case SchemaFieldsReordered e: { SchemaDef = SchemaDef.ReorderFields(e.FieldIds.ToList(), e.ParentFieldId?.Id); break; } case FieldUpdated e: { SchemaDef = SchemaDef.UpdateField(e.FieldId.Id, e.Properties, e.ParentFieldId?.Id); break; } case FieldLocked e: { SchemaDef = SchemaDef.LockField(e.FieldId.Id, e.ParentFieldId?.Id); break; } case FieldDisabled e: { SchemaDef = SchemaDef.DisableField(e.FieldId.Id, e.ParentFieldId?.Id); break; } case FieldEnabled e: { SchemaDef = SchemaDef.EnableField(e.FieldId.Id, e.ParentFieldId?.Id); break; } case FieldHidden e: { SchemaDef = SchemaDef.HideField(e.FieldId.Id, e.ParentFieldId?.Id); break; } case FieldShown e: { SchemaDef = SchemaDef.ShowField(e.FieldId.Id, e.ParentFieldId?.Id); break; } case FieldDeleted e: { SchemaDef = SchemaDef.DeleteField(e.FieldId.Id, e.ParentFieldId?.Id); break; } case SchemaDeleted: { IsDeleted = true; return(true); } } return(!ReferenceEquals(previousSchema, SchemaDef)); }