Пример #1
0
        public MongoJsonEditorViewModel(string title, MongoDBComponent mongoComponent, string propertyValue,
                                        List <ITemplateSource> templateSources, string defaultText, SegmentedDocumentSerialiser serialiser, IDesignerContext designerContext)
            : base(designerContext)
        {
            Title = "MongoDB " + title;
            this.propertyValue = propertyValue;
            this.serialiser    = serialiser;
            serialiser.AddConstructor("placeholder", (offset, text) => new PlaceholderSegment(offset, text, serialiser));
            serialiser.AddConstructor("query", (offset, text) => new QueryPlaceholder(offset, text, serialiser));
            serialiser.AddConstructor("queryarray", (offset, text) => new QueryArrayPlaceholder(offset, text, serialiser));
            serialiser.AddConstructor("value", (offset, text) => new ValuePlaceholder(offset, text, serialiser));
            serialiser.AddConstructor("valueArray", (offset, text) => new ValueArrayPlaceholder(offset, text, serialiser));
            serialiser.AddConstructor("field", (offset, text) => new FieldNamePlaceholder(offset, text, serialiser));
            serialiser.AddConstructor("pipelineOperator",
                                      (offset, text) => new AggregationPipeLineOperatorPlaceHolder(offset, text, serialiser));
            serialiser.AddConstructor("pipelineOperatorArray",
                                      (offset, text) => new AggregationPipeLineOperatorArrayPlaceholder(offset, text, serialiser));
            serialiser.AddConstructor("namevaluearray", (offset, text) => new NameValueArrayPlaceholder(offset, text, serialiser));
            serialiser.AddConstructor("updateOperatorArray",
                                      (offset, text) => new UpdateOperatorArrayPlaceholder(offset, text, serialiser));
            serialiser.AddConstructor("updateOperator", (offset, text) => new UpdateOperatorPlaceholder(offset, text, serialiser));
            serialiser.AddConstructor("groupoperatorarray", (offset, text) => new GroupOperatorArray(offset, text, serialiser));
            serialiser.AddConstructor("expression", (offset, text) => new ExpressionPlaceholder(offset, text, serialiser));
            serialiser.AddConstructor("NameExpressionArray",
                                      (offset, text) => new NameExpressionArrayPlaceholder(offset, text, serialiser));


            TemplateSources  = templateSources;
            this.defaultText = defaultText;
        }
Пример #2
0
        public void EditValue(Property property, object designer)
        {
            var    serialiser    = new SegmentedDocumentSerialiser();
            string propertyValue = GetPropertyValue(property);
            var    viewModel     =
                new MongoJsonEditorViewModel(property.Id, designer as MongoDBComponent, propertyValue,
                                             new List <ITemplateSource>
            {
                new MongoDatabaseTemplateSource(designer as MongoDBComponent, serialiser),
                new FilteredTemplateSource(
                    new EmbeddedFileTemplateSource("Mongo Operators", "Twenty57.Linx.Components.Database.Resources.MongoTemplates.xml", serialiser),
                    (Template) => Template.Category.StartsWith("Query Selectors") ||
                    Template.Category.StartsWith("Query Samples")

                    )
            }, "", serialiser,
                                             (designer as FunctionDesigner).Context
                                             );

            viewModel.WatermarkText = "Write a mongo query operation here, or  drag snippets from the 'Mongo Operators' tab below. ";

            viewModel.InitialiseDocument(new TextDocument());
            if (MongoDB.Editors.MongoJsonEditor.MongoJsonEditor.Display(viewModel, ((FunctionDesigner)designer)))
            {
                property.Value = viewModel.SegmentedDocument.Text;
            }
        }
Пример #3
0
 public ValueArrayPlaceholder(int offset, string text, SegmentedDocumentSerialiser serialiser)
     : base(offset, text, serialiser)
 {
 }
Пример #4
0
 public NameExpressionArrayPlaceholder(int offset, string text, SegmentedDocumentSerialiser serialiser)
     : base(offset, text, serialiser)
 {
 }
Пример #5
0
 public GroupOperatorArray(int offset, string text, SegmentedDocumentSerialiser serialiser)
     : base(offset, text, serialiser)
 {
 }
Пример #6
0
 public UpdateOperatorArrayPlaceholder(int offset, string text, SegmentedDocumentSerialiser serialiser)
     : base(offset, text, serialiser)
 {
 }
Пример #7
0
 public AggregationPipeLineOperatorArrayPlaceholder(int offset, string text, SegmentedDocumentSerialiser serialiser)
     : base(offset, text, serialiser)
 {
 }
Пример #8
0
 public FieldNamePlaceholder(int offset, string text, SegmentedDocumentSerialiser serialiser)
     : base(offset, text, serialiser)
 {
 }
Пример #9
0
 public FieldNamePlaceholder(SegmentedDocumentSerialiser segmentedDocumentSerialiser)
 {
     serialiser = segmentedDocumentSerialiser;
 }