public override void OnFinish(object sender, EventArgs e)
        {
            var modelReference = (IModelReference)((DataEntityToken)EntityToken).Data;
            var newName        = GetBinding <string>("Name");
            var definition     = DefinitionsFacade.GetDefinition(modelReference.Name);

            DefinitionsFacade.Copy(definition, newName);

            LocalizationsFacade.CopyNamespace(Localization.KeyPrefix + "." + modelReference.Name, Localization.KeyPrefix + "." + newName, Localization.ResourceSet);

            CreateSpecificTreeRefresher().PostRefreshMessages(new FormElementProviderEntityToken());
        }
        protected void Save(IDynamicDefinition definition)
        {
            SaveExtraSettings(definition);

            var token          = GetBinding <DataEntityToken>("BoundToken");
            var modelReference = (IModelReference)token.Data;

            var name = GetBinding <string>("Name");

            var introText       = GetBinding <string>("IntroText");
            var successResponse = GetBinding <string>("SuccessResponse");

            using (var writer = ResourceFacade.GetResourceWriter())
            {
                writer.AddResource(GetKey("IntroText"), introText);
                writer.AddResource(GetKey("SuccessResponse"), successResponse);
            }

            var isNewName = name != modelReference.Name;

            if (isNewName)
            {
                LocalizationsFacade.RenameNamespace(Localization.KeyPrefix + "." + modelReference.Name, Localization.KeyPrefix + "." + name, Localization.ResourceSet);

                DefinitionsFacade.Copy(definition, name);
                DefinitionsFacade.Delete(definition);

                modelReference = ModelReferenceFacade.GetModelReference(name);
                token          = modelReference.GetDataEntityToken();

                UpdateBinding("BoundToken", token);
                SetSaveStatus(true, token);
            }
            else
            {
                DefinitionsFacade.Save(definition);

                SetSaveStatus(true);
            }

            CreateParentTreeRefresher().PostRefreshMessages(EntityToken);
        }