Пример #1
0
        private static SingleSDefinitionField Convert2ObjectSingleSelectionDefinitionField(SingleSelectionDefinitionField field)
        {
            var svcDefField = new SingleSDefinitionField();

            svcDefField.GeneralObjectDefinitionFiledType = field.GeneralObjectDefinitionFiledType;
            svcDefField.ObjectDefinitionFieldID          = field.GeneralObjectDefinitionFieldID;
            svcDefField.ObjectDefinitionFieldKey         = field.GeneralObjectDefinitionFieldKey;
            svcDefField.ObjectDefinitionFieldName        = field.GeneralObjectDefinitionFieldName;

            foreach (var si in field.SelectionItems)
            {
                svcDefField.SelectionItems.Add(new DefinitionSelectItem {
                    SelectDisplayName = si.SelectDisplayName,
                    SelectItemID      = si.GeneralObjectDefinitionSelectItemID,
                    SelectItemKey     = si.SelectItemKey
                });
            }

            return(svcDefField);
        }
        private void DeserializeFields(List <ObjectDefinitionField> fields, IEnumerable <JToken> jObjects)
        {
            foreach (JObject obj in jObjects)
            {
                ObjectDefinitionField field = null;
                var fieldType = obj.Value <int>("generalObjectDefinitionFiledType");
                switch ((GeneralObjectDefinitionFieldType)fieldType)
                {
                case GeneralObjectDefinitionFieldType.PrimeType:
                    field = new PrimeDefinitionField();
                    ((PrimeDefinitionField)field).PrimeDataType = (PrimeFieldDataType)obj.Value <int>("primeDataType");
                    break;

                case GeneralObjectDefinitionFieldType.ObjectReference:
                    field = new ObjRefDefinitionField();
                    ((ObjRefDefinitionField)field).ReferedObjectDefinitionID = obj.Value <int>("referedObjectDefinitionID");
                    break;

                case GeneralObjectDefinitionFieldType.SingleSelection:
                    field = new SingleSDefinitionField();
                    ((SingleSDefinitionField)field).SelectionItems.AddRange(ParseSelectionItems(obj));
                    break;

                default:
                    field = new ObjectDefinitionField((GeneralObjectDefinitionFieldType)fieldType);
                    break;
                }

                if (field != null)
                {
                    field.ObjectDefinitionFieldID   = obj.Value <int>("objectDefinitionFieldID");
                    field.ObjectDefinitionFieldKey  = obj.Value <string>("objectDefinitionFieldKey");
                    field.ObjectDefinitionFieldName = obj.Value <string>("objectDefinitionFieldName");
                    fields.Add(field);
                }
            }
        }
Пример #3
0
        private static SingleSelectionDefinitionField ParseSingleSelectionDefinitionField(SingleSDefinitionField f, SingleSelectionDefinitionField field)
        {
            if (field == null)
            {
                field = new SingleSelectionDefinitionField();
            }

            field.GeneralObjectDefinitionFieldKey  = f.ObjectDefinitionFieldKey;
            field.GeneralObjectDefinitionFieldName = f.ObjectDefinitionFieldName;
            field.GeneralObjectDefinitionFiledType = f.GeneralObjectDefinitionFiledType;

            foreach (var item in f.SelectionItems)
            {
                var selectItem = (from s in field.SelectionItems
                                  where s.GeneralObjectDefinitionSelectItemID == item.SelectItemID
                                  select s).FirstOrDefault();

                if (selectItem != null)
                {
                    //update
                    selectItem.SelectDisplayName = item.SelectDisplayName;
                    selectItem.SelectItemKey     = item.SelectItemKey;
                }
                else
                {
                    //insert.
                    field.SelectionItems.Add(new GeneralObjectDefinitionSelectItem()
                    {
                        SelectItemKey     = item.SelectItemKey,
                        SelectDisplayName = item.SelectDisplayName
                    });
                }
            }

            return(field);
        }
Пример #4
0
        public void CreateObjectDefinitionTest()
        {
            IObjectService service = new DefaultObjectService();

            ObjectDefinition definition = new ObjectDefinition();

            definition.IsFeildsUpdateOnly      = false;
            definition.ObjectDefinitionKey     = "PERSON_TEST";
            definition.ObjectDefinitionGroupID = service.GetObjectDefinitionGroups(null, null)[0].GroupID;
            definition.ObjectDefinitionName    = "Person";
            definition.ObjectOwner             = "Admin";
            definition.UpdatedBy = "Admin";

            //Person name
            definition.ObjectFields.Add(new PrimeDefinitionField()
            {
                ObjectDefinitionFieldKey  = "PERSON_NAME",
                ObjectDefinitionFieldName = "Person Name",
                PrimeDataType             = PrimeFieldDataType.String
            });


            SingleSDefinitionField selectionField = new SingleSDefinitionField()
            {
                ObjectDefinitionFieldKey  = "PERSON_SEX",
                ObjectDefinitionFieldName = "Person Sex"
            };

            selectionField.SelectionItems.Add(new DefinitionSelectItem()
            {
                SelectDisplayName = "Male",
                SelectItemKey     = "Male"
            });
            selectionField.SelectionItems.Add(
                new DefinitionSelectItem()
            {
                SelectItemKey     = "Female",
                SelectDisplayName = "Female"
            });

            //Person Sex
            definition.ObjectFields.Add(selectionField);

            //Person Age
            definition.ObjectFields.Add(new PrimeDefinitionField()
            {
                ObjectDefinitionFieldKey  = "PERSON_AGE",
                ObjectDefinitionFieldName = "Person AGE",
                PrimeDataType             = PrimeFieldDataType.Integer
            });

            //person Image
            definition.ObjectFields.Add(new ObjectDefinitionField(GeneralObjectDefinitionFieldType.File)
            {
                GeneralObjectDefinitionFiledType = GeneralObjectDefinitionFieldType.File,
                ObjectDefinitionFieldKey         = "PERSON_IMAGE",
                ObjectDefinitionFieldName        = "Person Image"
            });

            //Manager
            definition.ObjectFields.Add(new ObjRefDefinitionField()
            {
                ObjectDefinitionFieldKey  = "PERSON_MANAGER",
                ObjectDefinitionFieldName = "Person Manager",
                ReferedObjectDefinitionID = 1
            });

            var objDef = service.GetAllObjectDefinitions()
                         .Where(od => od.ObjectDefinitionName.Equals("Person"))
                         .FirstOrDefault();

            //avoid to insert the duplicated value.
            if (objDef != null)
            {
                definition.ObjectDefinitionID = objDef.ObjectDefinitionID;
            }

            int objdefintionId = service.CreateORUpdateObjectDefinition(definition);

            Assert.True(objdefintionId > 0);
        }
        private ObjectDefinitionField ParseObjectDefinitionField(XElement property)
        {
            string typeString = property.Attribute("type").Value;

            switch (typeString)
            {
            case "String":
            case "Integer":
            case "Long":
            case "Datetime":
            case "Number":
            case "Binary":
                logger.LogDebug("Parse Binary field.");
                PrimeDefinitionField field = new PrimeDefinitionField();
                field.PrimeDataType             = (ObjectRepository.EntityModels.PrimeFieldDataType)Enum.Parse(typeof(ObjectRepository.EntityModels.PrimeFieldDataType), typeString);
                field.ObjectDefinitionFieldName = property.Attribute("name").Value;
                field.ObjectDefinitionFieldKey  = property.Attribute("key").Value;
                logger.LogDebug(string.Format("{0} = {1}", field.ObjectDefinitionFieldName, field.ObjectDefinitionFieldKey));
                return(field);

            case "File":

                ObjectDefinitionField fileField = new ObjectDefinitionField(ObjectRepository.EntityModels.GeneralObjectDefinitionFieldType.File);
                fileField.ObjectDefinitionFieldKey  = property.Attribute("key").Value;
                fileField.ObjectDefinitionFieldName = property.Attribute("name").Value;
                logger.LogDebug("Parse File field " + fileField.ObjectDefinitionFieldName);

                return(fileField);

            case "ObjRef":
                logger.LogDebug("Parse ObjRef field.");
                ObjRefDefinitionField refField = new ObjRefDefinitionField();
                refField.ObjectDefinitionFieldKey  = property.Attribute("key").Value;
                refField.ObjectDefinitionFieldName = property.Attribute("name").Value;
                refField.ReferedObjectDefinitionID = this.objectService.GetObjectDefinitionByName(property.Attribute("refName").Value).ObjectDefinitionID;

                logger.LogDebug(string.Format("{0} = {1}", refField.ObjectDefinitionFieldName, refField.ReferedObjectDefinitionID));

                return(refField);

            case "SingleSelection":
                SingleSDefinitionField ssField = new SingleSDefinitionField();
                ssField.ObjectDefinitionFieldKey  = property.Attribute("key").Value;
                ssField.ObjectDefinitionFieldName = property.Attribute("name").Value;

                foreach (XElement item in property.Descendants("choice"))
                {
                    ssField.SelectionItems.Add(new DefinitionSelectItem()
                    {
                        SelectDisplayName = item.Attribute("displayName").Value,
                        SelectItemKey     = item.Attribute("value").Value
                    });
                }
                logger.LogDebug("Parse SingleSelection field : " + ssField.ObjectDefinitionFieldName);
                return(ssField);

            default:
                break;
            }

            return(null);
        }