public ElementBlueprint CreateBlueprint(Element baseElement, string elementTypeName, string elementDisplayName, string elementDescription, string elementCategory) {
            var blueprint = new ElementBlueprint {
                BaseElementTypeName = baseElement.Descriptor.TypeName,
                ElementTypeName = elementTypeName,
                ElementDisplayName = elementDisplayName,
                ElementDescription = elementDescription,
                ElementCategory = elementCategory
            };

            _blueprintRepository.Create(blueprint);
            return blueprint;
        }
        private ElementBlueprint GetOrCreateElement(string typeName) {
            var element = _repository.Get(x => x.ElementTypeName == typeName);

            if (element == null) {
                element = new ElementBlueprint {
                    ElementTypeName = typeName
                };
                _repository.Create(element);
            }

            return element;
        }
 private void CreatingDisplay(ElementCreatingDisplayShapeContext context, ElementBlueprint blueprint) {
     var bluePrintState = ElementDataHelper.Deserialize(blueprint.BaseElementState);
     context.Element.Data = bluePrintState;
 }
 private static string GetCategory(ElementBlueprint blueprint) {
     return !String.IsNullOrWhiteSpace(blueprint.ElementCategory) ? blueprint.ElementCategory : "Blueprints";
 }
 public void DeleteBlueprint(ElementBlueprint blueprint) {
     _blueprintRepository.Delete(blueprint);
     _signals.Trigger(Signals.ElementDescriptors);
 }