コード例 #1
0
        public void CreateField_WhenNoInputIsPassedDown_ShouldCreateInstanceOfField()
        {
            // ARRANGE

            // ACT

            var result = fieldFactory.CreateField();

            //ASSERT

            Assert.IsInstanceOf <Field>(result);
        }
コード例 #2
0
ファイル: MixtureInspector.cs プロジェクト: IxxyXR/PolyGraph
        void UpdateExposedParameters()
        {
            parameters.Clear();

            if (graph.exposedParameters.Count != 0)
            {
                parameters.Add(new Label("Exposed Parameters:"));
            }

            foreach (var param in graph.exposedParameters)
            {
                if (param.settings.isHidden)
                {
                    continue;
                }

                VisualElement prop = new VisualElement();
                prop.style.display = DisplayStyle.Flex;
                Type paramType = Type.GetType(param.type);
                var  field     = FieldFactory.CreateField(paramType, param.serializedValue.value, (newValue) => {
                    Undo.RegisterCompleteObjectUndo(graph, "Changed Parameter " + param.name + " to " + newValue);
                    param.serializedValue.value = newValue;
                }, param.name);
                prop.Add(field);
                parameters.Add(prop);
            }
        }
コード例 #3
0
        public void Process_WordsAlreadyPopulated_DoesNothing()
        {
            // arrange
            var database = new Mock <Database>();

            database.Setup(x => x.Name).Returns("fake");

            var itemMock = ItemFactory.CreateItem(database: database.Object);

            database.Setup(x => x.GetItem("item")).Returns(itemMock.Object);

            var field = FieldFactory.CreateField(itemMock.Object, ID.NewID, Constants.Fields.WordList, "lorem\nipsum");

            ItemFactory.AddFields(itemMock, new[] { field });

            var sut = new GetProfanityListFromItem(database.Object);

            sut.ItemPath = "item";
            var args = new ProfanityFilterArgs();

            args.WordList = new[] { "dolor" };

            // act
            sut.Process(args);

            // assert
            Assert.That(args.WordList, Is.EquivalentTo(new[] { "dolor" }));
        }
コード例 #4
0
ファイル: RecordInfo.cs プロジェクト: mindis/Transformalize
        private static FieldBase[] CreateCoreFields(ArrayList fields, TypedRecordAttribute recordAttribute)
        {
            FieldBase curField;
            var       arr          = new ArrayList();
            var       someOptional = false;

            for (var i = 0; i < fields.Count; i++)
            {
                var fieldInfo = (FieldInfo)fields[i];

                curField = FieldFactory.CreateField(fieldInfo, recordAttribute, someOptional);

                if (curField != null)
                {
                    someOptional = curField.mIsOptional;

                    arr.Add(curField);
                    if (arr.Count > 1)
                    {
                        ((FieldBase)arr[arr.Count - 2]).mNextIsOptional = ((FieldBase)arr[arr.Count - 1]).mIsOptional;
                    }
                }
            }

            if (arr.Count > 0)
            {
                ((FieldBase)arr[0]).mIsFirst            = true;
                ((FieldBase)arr[arr.Count - 1]).mIsLast = true;
            }

            return((FieldBase[])arr.ToArray(typeof(FieldBase)));
        }
コード例 #5
0
ファイル: StructParser.cs プロジェクト: yole/structorian
        private StructField LoadField(StructLexer lexer, StructDef structDef, StructField parentField)
        {
            List <Attribute> attrs = new List <Attribute>();

            LoadAttributes(lexer, attrs);
            TextPosition fieldPosition = lexer.CurrentPosition;
            string       fieldType     = lexer.GetNextToken(StructTokenType.String);
            StructField  field         = null;

            try
            {
                field          = _fieldFactory.CreateField(structDef, fieldType, _attributeRegistry);
                field.Name     = fieldType;
                field.Position = fieldPosition;
            }
            catch (Exception ex)
            {
                _errors.Add(new ParseException(ex.Message, fieldPosition));
            }
            LoadAttributes(lexer, attrs);
            if (lexer.PeekNextToken() != StructTokenType.Semicolon && lexer.PeekNextToken() != StructTokenType.OpenCurly)
            {
                TextPosition pos = lexer.CurrentPosition;
                string       tag = lexer.GetNextToken(StructTokenType.String);
                LoadAttributes(lexer, attrs);
                if (field != null)
                {
                    _attributeRegistry.SetFieldAttribute(field, field.DefaultAttribute, tag, pos);
                }
            }

            foreach (Attribute attr in attrs)
            {
                _attributeRegistry.SetFieldAttribute(field, attr.Key, attr.Value, attr.Position);
            }

            if (lexer.PeekNextToken() == StructTokenType.OpenCurly)
            {
                LoadFieldGroup(lexer, structDef, field);
            }
            else
            {
                lexer.GetNextToken(StructTokenType.Semicolon);
            }

            if (field != null)
            {
                field.EndPosition = lexer.LastTokenEndPosition;
                if (parentField == null)
                {
                    structDef.AddField(field);
                }
                else
                {
                    parentField.AddChildField(field);
                }
            }
            return(field);
        }
コード例 #6
0
        private Item CreateDictionaryEntryItem(string phrase)
        {
            var item  = ItemFactory.CreateItem();
            var field = FieldFactory.CreateField(item.Object, ID.NewID, "Phrase", phrase);

            ItemFactory.AddFields(item, new[] { field });
            return(item.Object);
        }
コード例 #7
0
        private Field CreateField(XmlSchemaElement schema)
        {
            XmlSchema onTheFlySchema = new XmlSchema();

            onTheFlySchema.Items.Add(schema);

            return(FieldFactory.CreateField("GroupBox", schema.Name, onTheFlySchema));
        }
コード例 #8
0
        private Mock <Item> CreateMockBlogItem(bool rssEnabled)
        {
            var itemMock        = ItemFactory.CreateItem();
            var rssEnabledField = FieldFactory.CreateField(itemMock.Object, ID.NewID, "Enable RSS", rssEnabled ? "1" : "0");

            ItemFactory.AddFields(itemMock, new[] { rssEnabledField });

            return(itemMock);
        }
コード例 #9
0
        private void CreateOutputPort(TypeInfo typeInfo)
        {
            var element = FieldFactory.CreateField(typeInfo.DataType, dataNode.outputValue, (newValue) =>
            {
                owner.RegisterCompleteObjectUndo("Create TestNodeView " + typeInfo.fullName);
                dataNode.outputValue = newValue;
                NotifyNodeChanged();
                valueChangeCallback?.Invoke();
            }, $"{typeInfo.fullName.Split('.').LastOrDefault()}Value");

            controlsContainer.Add(element);
            style.width = 200;
        }
コード例 #10
0
ファイル: FieldFactoryTest.cs プロジェクト: lanicon/TypePipe
        public void CreateField()
        {
            var field = _factory.CreateField(_mutableType, "_newField", typeof(string), FieldAttributes.FamANDAssem);

            Assert.That(field.DeclaringType, Is.SameAs(_mutableType));
            Assert.That(field.Name, Is.EqualTo("_newField"));
            Assert.That(field.FieldType, Is.EqualTo(typeof(string)));
            Assert.That(field.Attributes, Is.EqualTo(FieldAttributes.FamANDAssem));
        }
コード例 #11
0
        private CommentItem CreateCommentItem()
        {
            var itemMock = ItemFactory.CreateItem();

            ItemFactory.AddFields(itemMock, new[]
            {
                FieldFactory.CreateField(itemMock.Object, ID.NewID, "IP Address", "127.0.0.1"),
                FieldFactory.CreateField(itemMock.Object, ID.NewID, "Comment", "comment"),
                FieldFactory.CreateField(itemMock.Object, ID.NewID, "Name", "name"),
                FieldFactory.CreateField(itemMock.Object, ID.NewID, "Email", "email"),
                FieldFactory.CreateField(itemMock.Object, ID.NewID, "Website", "website")
            });

            return(new CommentItem(itemMock.Object));
        }
コード例 #12
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ChoiceBox"/> class.
        /// </summary>
        /// <param name="typeName">The name of the class that rapresents the generic type of the instance.</param>
        /// <param name="elementName">The name of the <see cref="ChoiceBox"/> instance in the presentation.xml file of the workflow.</param>
        /// <param name="schema">The schema xml that describe the <see cref="ChoiceBox"/> type.</param>
        public ChoiceBox(String typeName, String elementName, XmlSchemaSet schema)
            : base(typeName, elementName, schema)
        {
            fields = new List <Field>();

            //Instatiate all the possible fields
            XmlSchemaType   myType = (schema.GlobalElements[new XmlQualifiedName(elementName)] as XmlSchemaElement).SchemaType;
            XmlSchemaChoice choice = (myType as XmlSchemaComplexType).Particle as XmlSchemaChoice;

            foreach (XmlSchemaElement element in choice.Items)
            {
                Field subfield = FieldFactory.CreateField(element);
                fields.Add(subfield);
            }
        }
コード例 #13
0
        void UpdateExposedParameters()
        {
            parameters.Clear();

            bool header           = true;
            bool showUpdateButton = false;

            foreach (var param in graph.exposedParameters)
            {
                if (param.settings.isHidden)
                {
                    continue;
                }

                if (header)
                {
                    var headerLabel = new Label("Exposed Parameters");
                    headerLabel.AddToClassList("Header");
                    parameters.Add(headerLabel);
                    header           = false;
                    showUpdateButton = true;
                }
                VisualElement prop = new VisualElement();
                prop.AddToClassList("Indent");
                prop.style.display = DisplayStyle.Flex;
                Type paramType = Type.GetType(param.type);
                var  field     = FieldFactory.CreateField(paramType, param.serializedValue.value, (newValue) => {
                    Undo.RegisterCompleteObjectUndo(graph, "Changed Parameter " + param.name + " to " + newValue);
                    param.serializedValue.value = newValue;
                }, param.name);
                prop.Add(field);
                parameters.Add(prop);
            }

            if (showUpdateButton)
            {
                var updateButton = new Button(() => {
                    MixtureGraphProcessor.RunOnce(graph);
                    graph.SaveAllTextures(false);
                })
                {
                    text = "Update"
                };
                updateButton.AddToClassList("Indent");
                parameters.Add(updateButton);
            }
        }
コード例 #14
0
        public IHttpActionResult CreateLog(MyLogDTO myLogDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new HttpResponseException(System.Net.HttpStatusCode.BadRequest);
            }

            var userId = User.Identity.GetUserId();

            var category = unitOfWork.LogCategories.GetByIDWithCategoryFields(myLogDTO.LogCategoryId);

            if (category == null)
            {
                throw new HttpResponseException(System.Net.HttpStatusCode.BadRequest);
            }

            var fields = new List <Field>();

            var fieldFactory = new FieldFactory();

            foreach (var field in myLogDTO.Fields)
            {
                var   fieldType = category.CategoryFields.SingleOrDefault(cf => cf.Id == field.CategoryField.Id).FieldType.TypeName;
                Field lol       = fieldFactory.CreateField(field.Value, fieldType);
                lol.CategoryFieldId = field.CategoryField.Id;
                fields.Add(lol);
            }

            var myLog = new MyLog
            {
                ApplicationUserId = userId,
                Fields            = fields,
                LogDate           = DateTime.Now,
                LogCategoryId     = myLogDTO.LogCategoryId
            };



            unitOfWork.MyLogs.Insert(myLog);

            unitOfWork.Commit();

            var rLog = Mapper.Map <MyLog, MyLogDTO>(myLog);

            return(Ok(rLog));
        }
コード例 #15
0
        private Field[] InstantiateNode(XmlSchemaComplexType schema, XmlSchema types)
        {
            List <Field> elements = new List <Field>();

            foreach (XmlSchemaElement elementSchema in (schema.Particle as XmlSchemaSequence).Items)
            {
                //Build a schema customized for the element and containing the type and the base type definition
                Field element = FieldFactory.CreateField(elementSchema);
                if (element == null)
                {
                    throw new WorkflowException(WorkflowExceptionType.TypeNotSupported, elementSchema.SchemaType != null ? "The type " + elementSchema.SchemaType.Name + " is not supported" : "There is an error in the type system");
                }

                elements.Add(element);
            }
            return(elements.ToArray());
        }
コード例 #16
0
        private Object BuildParameter(XmlNode parameter, XmlSchema types, XmlDocument xpathContext)
        {
            if (parameter.Attributes["type"].Value == "value")
            {
                XmlSchema onTheFlySchema = new XmlSchema();

                XmlSchemaElement valueSchema = new XmlSchemaElement();

                valueSchema.Name       = parameter.FirstChild.Name;
                valueSchema.SchemaType = types.SchemaTypes[new XmlQualifiedName(parameter.FirstChild.Name)] as XmlSchemaType;

                Field field = FieldFactory.CreateField(valueSchema);
                if (field == null)
                {
                    throw new WorkflowException(WorkflowExceptionType.TypeNotSupported, "The type " + parameter.FirstChild.Name + " is not supported");
                }

                field.FromXml(parameter.FirstChild as XmlElement);
                return(field);
            }
            if (parameter.Attributes["type"].Value == "path")
            {
                //Map xpath to an object reference
                String     xpath    = (parameter.FirstChild as XmlNode).InnerText.Trim();
                XmlElement selected = xpathContext.SelectSingleNode(xpath) as XmlElement;
                if (selected == null)
                {
                    throw new WorkflowException(WorkflowExceptionType.WorkflowSchemaBadFormat, "The XPath " + xpath + " cannot be resolved");
                }

                for (int i = 0; i < workflow[selected.ParentNode.Name].Fields.Length; i++)
                {
                    if (workflow[selected.ParentNode.Name].Fields[i].FieldName == selected.Name)
                    {
                        return(workflow[selected.ParentNode.Name].Fields[i]);
                    }
                }
            }
            if (parameter.Attributes["type"].Value.Equals("operation", StringComparison.InvariantCultureIgnoreCase))
            {
                return
                    (BuildOperation(parameter.FirstChild, types, xpathContext));
            }
            return(null);
        }
コード例 #17
0
        private (Dictionary <string, Item> Items, IBlogManager BlogManager, IEntryManager EntryManager) SetupManagerMocks(
            bool returnBlogItem,
            Entry[] page1Entries,
            Entry[] page2Entries = null,
            Entry[] page3Entries = null
            )
        {
            var entries = page1Entries.AsEnumerable();

            if (page2Entries != null)
            {
                entries = entries.Concat(page2Entries);
            }

            if (page3Entries != null)
            {
                entries = entries.Concat(page3Entries);
            }

            var items = new Dictionary <string, Item>();

            foreach (var entry in entries)
            {
                var itemMock  = ItemFactory.CreateItem(entry.Uri.ItemID);
                var dateField = FieldFactory.CreateField(itemMock.Object, ID.NewID, "Entry Date", DateUtil.ToIsoDate(entry.EntryDate));
                ItemFactory.AddFields(itemMock, new[] { dateField });

                items.Add(entry.Title, itemMock.Object);
            }

            var blogItem     = ItemFactory.CreateItem();
            var blogHomeItem = new BlogHomeItem(blogItem.Object);

            var blogManager = Mock.Of <IBlogManager>(x =>
                                                     x.GetCurrentBlog(It.IsAny <Item>()) == (returnBlogItem ? blogHomeItem : null)
                                                     );

            var entryManager = Mock.Of <IEntryManager>(x =>
                                                       x.GetBlogEntries(blogHomeItem, It.IsAny <EntryCriteria>(), It.IsAny <ListOrder>()) == new SearchResults <Entry>(entries.ToList(), false)
                                                       );

            return(items, blogManager, entryManager);
        }
コード例 #18
0
        internal FtSequenceInvokation(int myIndex, FtSequence mySequence, int myStartFieldIndex)
        {
            index           = myIndex;
            sequence        = mySequence;
            startFieldIndex = myStartFieldIndex;

            int sequenceItemCount = sequence.ItemList.Count;

            fieldList = new FieldList(sequenceItemCount);

            for (int i = 0; i < sequenceItemCount; i++)
            {
                FtField field = FieldFactory.CreateField(this, sequence.ItemList[i]);
                field.Index = myStartFieldIndex + i;
                field.SequenceRedirectEvent += HandleSequenceRedirectEvent;
                fieldList.Add(field);
            }

            fieldsSidelinedFromIndex = sequenceItemCount;
        }
コード例 #19
0
        /// <summary>
        /// Initializes a new instance of the <see cref="GroupBox"/> class.
        /// </summary>
        /// <param name="typeName">The name of the class that rapresents the generic type of the instance.</param>
        /// <param name="elementName">The name of the <see cref="GroupBox"/> instance in the presentation.xml file of the workflow.</param>
        /// <param name="schema">The schema xml that describe the <see cref="GroupBox"/> type.</param>
        public GroupBox(String typeName, String elementName, XmlSchemaSet schema)
            : base(typeName, elementName, schema)
        {
            fields = new List <Field>();

            //Instatiate subfields
            XmlSchemaComplexType myType = (schema.GlobalElements[new XmlQualifiedName(elementName)] as XmlSchemaElement).SchemaType as XmlSchemaComplexType;
            XmlSchemaSequence    seq    = myType.Particle as XmlSchemaSequence;

            foreach (XmlSchemaObject subf in seq.Items)
            {
                XmlSchemaElement element  = subf as XmlSchemaElement;
                Field            subfield = FieldFactory.CreateField(element);
                if (subfield == null)
                {
                    throw new ArgumentException(element.SchemaType != null? "The type " + element.SchemaType.Name + " is not supported" : "One of the children is not supported");
                }

                fields.Add(subfield);
            }
        }
コード例 #20
0
        public void Resolve_ItemBasedOnDerivedBlogTemplate_ReturnsSettingsFromBlog()
        {
            // arrange
            var categoryTemplateId = ID.NewID;
            var entryTemplateId    = ID.NewID;
            var commentTemplateId  = ID.NewID;
            var blogTemplateId     = ID.NewID;
            var baseBlogTemplateId = ID.NewID;

            var templates       = new TemplateCollection();
            var baseTemplate    = TemplateFactory.CreateTemplate(baseBlogTemplateId, null, templates);
            var blogTemplate    = TemplateFactory.CreateTemplate(blogTemplateId, baseBlogTemplateId, templates);
            var templateManager = TemplateFactory.CreateTemplateManager(new[] { blogTemplate });

            var item = ItemFactory.CreateItem(templateId: blogTemplateId);

            var categoryField = FieldFactory.CreateField(item.Object, ID.NewID, "Defined Category Template", categoryTemplateId.ToString());
            var entryField    = FieldFactory.CreateField(item.Object, ID.NewID, "Defined Entry Template", entryTemplateId.ToString());
            var commentField  = FieldFactory.CreateField(item.Object, ID.NewID, "Defined Comment Template", commentTemplateId.ToString());

            ItemFactory.AddFields(item, new[] { categoryField, entryField, commentField });

            var weBlogsettings = Mock.Of <IWeBlogSettings>(x =>
                                                           x.CategoryTemplateIds == new[] { ID.NewID } &&
                                                           x.EntryTemplateIds == new[] { ID.NewID } &&
                                                           x.CommentTemplateIds == new[] { ID.NewID } &&
                                                           x.BlogTemplateIds == new[] { baseBlogTemplateId }
                                                           );

            var sut = new BlogSettingsResolver(templateManager, weBlogsettings);

            // act
            var result = sut.Resolve(item.Object);

            // assert
            Assert.That(result.CategoryTemplateID, Is.EqualTo(categoryTemplateId));
            Assert.That(result.EntryTemplateID, Is.EqualTo(entryTemplateId));
            Assert.That(result.CommentTemplateID, Is.EqualTo(commentTemplateId));
        }
コード例 #21
0
        protected override VisualElement CreateSettingsView()
        {
            if (!dataNode.canChangeType)
            {
                return new Button()
                       {
                           text = "Happy"
                       }
            }
            ;

            var  settings = new VisualElement();
            bool isInput  = dataNode.graphNodeType == GraphNodeType.MNode;
            bool isOut    = dataNode.graphNodeType == GraphNodeType.VNode;

            EnumField enumFiled = new EnumField("Choose Type", dataNode.typeEnum);

            settings.Add(enumFiled);

            enumFiled.RegisterValueChangedCallback((v) =>
            {
                TypeEnum gType = (TypeEnum)v.newValue;
                owner.RegisterCompleteObjectUndo($"Chagne node Type{nameof(gType)}");
                controlsContainer.Clear();
                VisualElement element;
                Type type = typeMap[gType];

                if (isInput)
                {
                    dataNode.mTypeInfo = new TypeInfo(type);
                    if (owner.graph is ConvertGraph cGraph)
                    {
                        cGraph.destNodeTypeInfo = dataNode.mTypeInfo;
                    }

                    element = FieldFactory.CreateField(type, dataNode.inputValue, (newValue) =>
                    {
                        dataNode.inputValue = newValue;
                        NotifyNodeChanged();
                        valueChangeCallback?.Invoke();
                    }, null);
                }
                else if (isOut)
                {
                    dataNode.vTypeInfo = new TypeInfo(type);
                    if (owner.graph is ConvertGraph cGraph)
                    {
                        cGraph.startNodeTypeInfo = dataNode.vTypeInfo;
                    }

                    element = FieldFactory.CreateField(type, dataNode.inputValue, (newValue) =>
                    {
                        dataNode.inputValue = newValue;
                        NotifyNodeChanged();
                        valueChangeCallback?.Invoke();
                    }, null);
                }
                else
                {
                    element = new VisualElement();
                    throw new Exception("Currently don't support that");
                }

                dataNode.typeEnum = gType;
                dataNode.UpdatePortsForFieldLocal(isInput ? nameof(dataNode.inputValue) : nameof(dataNode.outputValue));
                controlsContainer.Add(element);
            }
                                                   );

            return(settings);
        }
    }