Пример #1
0
 private static void ConvertItem(object item, List <Field> fields)
 {
     System.Type type = item.GetType();
     if (type == typeof(BooleanPropertyType))
     {
         BooleanPropertyType booleanProperty = (BooleanPropertyType)item;
         fields.Add(new Field(booleanProperty.Name, booleanProperty.Value, FieldType.Boolean));
     }
     else if (type == typeof(EnumPropertyType))
     {
         //--- Note: EnumPropertyType is not converted.
     }
     else if (type == typeof(LocalizableTextPropertyType))
     {
         LocalizableTextPropertyType localizableTextProperty = (LocalizableTextPropertyType)item;
         string baseFieldTitle = localizableTextProperty.Name;
         if (!string.IsNullOrEmpty(baseFieldTitle) && localizableTextProperty.LocalizedString != null)
         {
             foreach (var localizedStringItem in localizableTextProperty.LocalizedString)
             {
                 if (string.IsNullOrEmpty(localizedStringItem.Lang))
                 {
                     fields.Add(new Field(baseFieldTitle, localizedStringItem.Value, FieldType.Text));
                 }
                 else
                 {
                     string localizedTitle = string.Format("{0} {1}", baseFieldTitle, localizedStringItem.Lang);
                     fields.Add(new Field(localizedTitle, localizedStringItem.Value, FieldType.Localization));
                 }
             }
         }
     }
     else if (type == typeof(ReferenceSlotPropertyType))
     {
         //--- Note: ReferenceSlotPropertyType type is not converted.
     }
     else if (type == typeof(NumberPropertyType))
     {
         NumberPropertyType numberPropertyType = (NumberPropertyType)item;
         fields.Add(new Field(numberPropertyType.Name, numberPropertyType.Value, FieldType.Number));
     }
     else if (type == typeof(ReferenceStripPropertyType))
     {
         //--- Note: ReferenceStripPropertyType is not converted.
     }
     else if (type == typeof(StringPropertyType))
     {
         StringPropertyType stringPropertyType = (StringPropertyType)item;
         fields.Add(new Field(stringPropertyType.Name, stringPropertyType.Value, FieldType.Text));
     }
 }
Пример #2
0
 public void TestInitialize()
 {
     _property = new PropertyLite
     {
         PropertyTypeId = DefaultInstancePropertyTypeId,
         NumberValue    = 15.01M
     };
     _propertyType = new NumberPropertyType
     {
         PropertyTypeId         = DefaultPropertyTypeId,
         InstancePropertyTypeId = DefaultInstancePropertyTypeId,
         Range = new Range <decimal> {
             Start = 10, End = 20
         },
         DecimalPlaces = 2,
         IsValidate    = true
     };
 }
Пример #3
0
        private static void ConvertItem(object item, List <Field> fields)
        {
            System.Type type = item.GetType();
            if (type == typeof(BooleanPropertyType))
            {
                BooleanPropertyType booleanProperty = (BooleanPropertyType)item;
                fields.Add(new Field(booleanProperty.Name, string.Equals(booleanProperty.Value, "1").ToString(), FieldType.Boolean));
            }
            else if (type == typeof(EnumPropertyType))
            {
                EnumPropertyType enumProperty = (EnumPropertyType)item;
                if (PixelCrushers.DialogueSystem.Articy.ArticyTools.IsQuestStateArticyPropertyName(enumProperty.Name))
                {
                    fields.Add(new Field(enumProperty.Name, PixelCrushers.DialogueSystem.Articy.ArticyTools.EnumValueToQuestState(Tools.StringToInt(enumProperty.Value), GetEnumStringValue(enumProperty.Name, Tools.StringToInt(enumProperty.Value))), FieldType.Text));
                }
                else
                {
                    var asString = _convertDropdownAsString;
                    if (_prefs != null)
                    {
                        switch (_prefs.ConversionSettings.GetDropdownOverrideSetting(enumProperty.Name).mode)
                        {
                        case ConversionSettings.DropdownOverrideMode.Int:
                            asString = false;
                            break;

                        case ConversionSettings.DropdownOverrideMode.String:
                            asString = true;
                            break;
                        }
                    }
                    if (asString)
                    {
                        fields.Add(new Field(enumProperty.Name, GetEnumStringValue(enumProperty.Name, Tools.StringToInt(enumProperty.Value)), FieldType.Text));
                    }
                    else
                    {
                        fields.Add(new Field(enumProperty.Name, enumProperty.Value, FieldType.Number));
                    }
                }
            }
            else if (type == typeof(LocalizableTextPropertyType))
            {
                LocalizableTextPropertyType localizableTextProperty = (LocalizableTextPropertyType)item;
                string baseFieldTitle = localizableTextProperty.Name;
                if (!string.IsNullOrEmpty(baseFieldTitle) && localizableTextProperty.LocalizedString != null)
                {
                    foreach (var localizedStringItem in localizableTextProperty.LocalizedString)
                    {
                        if (string.IsNullOrEmpty(localizedStringItem.Lang))
                        {
                            fields.Add(new Field(baseFieldTitle, localizedStringItem.Value, FieldType.Text));
                        }
                        else
                        {
                            string localizedTitle = string.Format("{0} {1}", baseFieldTitle, localizedStringItem.Lang);
                            fields.Add(new Field(localizedTitle, localizedStringItem.Value, FieldType.Localization));
                        }
                    }
                }
            }
            else if (type == typeof(ReferenceSlotPropertyType))
            {
                ReferenceSlotPropertyType slotProperty = (ReferenceSlotPropertyType)item;
                if (_convertSlotsAs == ConverterPrefs.ConvertSlotsModes.DisplayName)
                {
                    fields.Add(new Field(slotProperty.Name, GetDisplayName(slotProperty.IdRef), FieldType.Text));
                }
                else
                {
                    fields.Add(new Field(slotProperty.Name, slotProperty.IdRef, FieldType.Text));
                }
            }
            else if (type == typeof(NumberPropertyType))
            {
                NumberPropertyType numberPropertyType = (NumberPropertyType)item;
                fields.Add(new Field(numberPropertyType.Name, numberPropertyType.Value, FieldType.Number));
            }
            else if (type == typeof(ReferenceStripPropertyType))
            {
                ReferenceStripPropertyType stripPropertyType = (ReferenceStripPropertyType)item;
                fields.Add(new Field(ArticyTools.SubtableFieldPrefix + stripPropertyType.Name, GetStripStringValue(stripPropertyType), FieldType.Text));
            }
            else if (type == typeof(StringPropertyType))
            {
                StringPropertyType stringPropertyType = (StringPropertyType)item;
                fields.Add(new Field(stringPropertyType.Name, stringPropertyType.Value, FieldType.Text));
            }
        }
Пример #4
0
        private Dictionary <int, List <WorkflowPropertyType> > ToItemTypePropertyTypesDictionary(IEnumerable <SqlPropertyType> sqlPropertyTypes)
        {
            var dictionary = new Dictionary <int, List <WorkflowPropertyType> >();

            foreach (var sqlPropertyType in sqlPropertyTypes)
            {
                WorkflowPropertyType workflowProperty;
                switch (sqlPropertyType.PrimitiveType)
                {
                case PropertyPrimitiveType.Text:
                {
                    workflowProperty = new TextPropertyType
                    {
                        AllowMultiple          = sqlPropertyType.AllowMultiple,
                        DefaultValidValueId    = sqlPropertyType.DefaultValidValueId,
                        InstancePropertyTypeId = GetInstancePropertyTypeId(sqlPropertyType.InstancePropertyTypeId, sqlPropertyType.Predefined),
                        Name               = sqlPropertyType.Name,
                        PropertyTypeId     = sqlPropertyType.PropertyTypeId,
                        PrimitiveType      = sqlPropertyType.PrimitiveType,
                        IsRequired         = sqlPropertyType.Required != null && sqlPropertyType.Required.Value,
                        StringDefaultValue = sqlPropertyType.StringDefaultValue,
                        VersionId          = sqlPropertyType.VersionId,
                        Predefined         = sqlPropertyType.Predefined,

                        DefaultValue = sqlPropertyType.StringDefaultValue,
                        IsValidate   = sqlPropertyType.Validate.GetValueOrDefault(false),
                        IsRichText   = sqlPropertyType.IsRichText
                    };
                    break;
                }

                case PropertyPrimitiveType.Number:
                {
                    workflowProperty = new NumberPropertyType
                    {
                        AllowMultiple          = sqlPropertyType.AllowMultiple,
                        DefaultValue           = PropertyHelper.ToDecimal((byte[])sqlPropertyType.DecimalDefaultValue),
                        DecimalPlaces          = sqlPropertyType.DecimalPlaces.GetValueOrDefault(0),
                        DefaultValidValueId    = sqlPropertyType.DefaultValidValueId,
                        InstancePropertyTypeId = sqlPropertyType.InstancePropertyTypeId,
                        Name           = sqlPropertyType.Name,
                        PropertyTypeId = sqlPropertyType.PropertyTypeId,
                        Range          = new Range <decimal>
                        {
                            End   = PropertyHelper.ToDecimal((byte[])sqlPropertyType.NumberRange_End).GetValueOrDefault(0),
                            Start = PropertyHelper.ToDecimal((byte[])sqlPropertyType.NumberRange_Start).GetValueOrDefault(0)
                        },
                        PrimitiveType = sqlPropertyType.PrimitiveType,
                        IsRequired    = sqlPropertyType.Required != null && sqlPropertyType.Required.Value,
                        IsValidate    = sqlPropertyType.Validate.GetValueOrDefault(false),
                        VersionId     = sqlPropertyType.VersionId,
                        Predefined    = sqlPropertyType.Predefined
                    };
                    break;
                }

                case PropertyPrimitiveType.Date:
                {
                    workflowProperty = new DatePropertyType
                    {
                        AllowMultiple          = sqlPropertyType.AllowMultiple,
                        DefaultValue           = sqlPropertyType.DateDefaultValue,
                        DefaultValidValueId    = sqlPropertyType.DefaultValidValueId,
                        InstancePropertyTypeId = sqlPropertyType.InstancePropertyTypeId,
                        Name           = sqlPropertyType.Name,
                        PropertyTypeId = sqlPropertyType.PropertyTypeId,
                        Range          = new Range <DateTime?>
                        {
                            End   = sqlPropertyType.DateRange_End,
                            Start = sqlPropertyType.DateRange_Start
                        },
                        PrimitiveType = sqlPropertyType.PrimitiveType,
                        IsRequired    = sqlPropertyType.Required != null && sqlPropertyType.Required.Value,
                        IsValidate    = sqlPropertyType.Validate.GetValueOrDefault(false),
                        VersionId     = sqlPropertyType.VersionId,
                        Predefined    = sqlPropertyType.Predefined
                    };
                    break;
                }

                case PropertyPrimitiveType.User:
                    workflowProperty = new UserPropertyType()
                    {
                        DefaultLabels          = sqlPropertyType.UserDefaultLabel,
                        DefaultValues          = sqlPropertyType.UserDefaultValue,
                        InstancePropertyTypeId = sqlPropertyType.InstancePropertyTypeId,
                        Name           = sqlPropertyType.Name,
                        PropertyTypeId = sqlPropertyType.PropertyTypeId,
                        PrimitiveType  = sqlPropertyType.PrimitiveType,
                        IsRequired     = sqlPropertyType.Required != null && sqlPropertyType.Required.Value,
                        VersionId      = sqlPropertyType.VersionId,
                        Predefined     = sqlPropertyType.Predefined
                    };
                    break;

                case PropertyPrimitiveType.Choice:
                {
                    workflowProperty = new ChoicePropertyType
                    {
                        AllowMultiple = sqlPropertyType.AllowMultiple,
                        // DefaultValue = PropertyHelper.ToDecimal((byte[])sqlPropertyType.DecimalDefaultValue),
                        ValidValues = XmlModelSerializer.DeserializeCustomProperties(sqlPropertyType.CustomProperty).CustomProperties[0]?.ValidValues
                                      .OrderBy(v => I18NHelper.Int32ParseInvariant(v.OrderIndex))
                                      .Select(v =>
                            {
                                int?vvId = null;
                                if (!string.IsNullOrWhiteSpace(v.LookupListItemId))
                                {
                                    int intValue;
                                    if (int.TryParse(v.LookupListItemId, out intValue))
                                    {
                                        vvId = intValue;
                                    }
                                }
                                int?vvSid = null;
                                if (!string.IsNullOrWhiteSpace(v.StandardLookupListItemId))
                                {
                                    int intValue;
                                    if (int.TryParse(v.StandardLookupListItemId, out intValue))
                                    {
                                        vvSid = intValue;
                                    }
                                }
                                return(new ValidValue {
                                    Id = vvId, Value = v.Value, Sid = vvSid
                                });
                            }).ToList(),
                        DefaultValidValueId    = sqlPropertyType.DefaultValidValueId,
                        InstancePropertyTypeId = sqlPropertyType.InstancePropertyTypeId,
                        Name           = sqlPropertyType.Name,
                        PropertyTypeId = sqlPropertyType.PropertyTypeId,
                        PrimitiveType  = sqlPropertyType.PrimitiveType,
                        IsRequired     = sqlPropertyType.Required != null && sqlPropertyType.Required.Value,
                        IsValidate     = sqlPropertyType.Validate.GetValueOrDefault(false),
                        VersionId      = sqlPropertyType.VersionId,
                        Predefined     = sqlPropertyType.Predefined
                    };
                    break;
                }

                // TODO: add other DPropertyTypes
                default:
                {
                    workflowProperty = new WorkflowPropertyType
                    {
                        AllowMultiple          = sqlPropertyType.AllowMultiple,
                        DefaultValidValueId    = sqlPropertyType.DefaultValidValueId,
                        InstancePropertyTypeId = sqlPropertyType.InstancePropertyTypeId,
                        IsRichText             = sqlPropertyType.IsRichText,
                        Name               = sqlPropertyType.Name,
                        PropertyTypeId     = sqlPropertyType.PropertyTypeId,
                        PrimitiveType      = sqlPropertyType.PrimitiveType,
                        IsRequired         = sqlPropertyType.Required != null && sqlPropertyType.Required.Value,
                        StringDefaultValue = sqlPropertyType.StringDefaultValue,
                        VersionId          = sqlPropertyType.VersionId,
                        Predefined         = sqlPropertyType.Predefined
                    };
                    break;
                }
                }

                if (dictionary.ContainsKey(sqlPropertyType.ItemTypeId))
                {
                    dictionary[sqlPropertyType.ItemTypeId].Add(workflowProperty);
                }
                else
                {
                    dictionary.Add(sqlPropertyType.ItemTypeId, new List <WorkflowPropertyType> {
                        workflowProperty
                    });
                }
            }
            return(dictionary);
        }
Пример #5
0
 private static void ConvertItem(object item, List <Field> fields)
 {
     System.Type type = item.GetType();
     if (type == typeof(BooleanPropertyType))
     {
         BooleanPropertyType booleanProperty = (BooleanPropertyType)item;
         fields.Add(new Field(booleanProperty.Name, string.Equals(booleanProperty.Value, "1").ToString(), FieldType.Boolean));
     }
     else if (type == typeof(EnumPropertyType))
     {
         EnumPropertyType enumProperty = (EnumPropertyType)item;
         if (PixelCrushers.DialogueSystem.Articy.ArticyTools.IsQuestStateArticyPropertyName(enumProperty.Name))
         {
             fields.Add(new Field(enumProperty.Name, PixelCrushers.DialogueSystem.Articy.ArticyTools.EnumValueToQuestState(Tools.StringToInt(enumProperty.Value), string.Empty), FieldType.Text));
         }
         else
         {
             fields.Add(new Field(enumProperty.Name, enumProperty.Value, FieldType.Number));
         }
     }
     else if (type == typeof(LocalizableTextPropertyType))
     {
         LocalizableTextPropertyType localizableTextProperty = (LocalizableTextPropertyType)item;
         string baseFieldTitle = localizableTextProperty.Name;
         if (!string.IsNullOrEmpty(baseFieldTitle) && localizableTextProperty.LocalizedString != null)
         {
             foreach (var localizedStringItem in localizableTextProperty.LocalizedString)
             {
                 if (string.IsNullOrEmpty(localizedStringItem.Lang))
                 {
                     fields.Add(new Field(baseFieldTitle, localizedStringItem.Value, FieldType.Text));
                 }
                 else
                 {
                     string localizedTitle = string.Format("{0} {1}", baseFieldTitle, localizedStringItem.Lang);
                     fields.Add(new Field(localizedTitle, localizedStringItem.Value, FieldType.Localization));
                 }
             }
         }
     }
     else if (type == typeof(ReferenceSlotPropertyType))
     {
         ReferenceSlotPropertyType slotProperty = (ReferenceSlotPropertyType)item;
         fields.Add(new Field(slotProperty.Name, slotProperty.IdRef, FieldType.Text));
     }
     else if (type == typeof(NumberPropertyType))
     {
         NumberPropertyType numberPropertyType = (NumberPropertyType)item;
         fields.Add(new Field(numberPropertyType.Name, numberPropertyType.Value, FieldType.Number));
     }
     else if (type == typeof(ReferenceStripPropertyType))
     {
         //--- Note: ReferenceStripPropertyType is not converted.
         Debug.LogWarning("Dialogue System: Skipping import of ReferenceStripPropertyType: " + (item as ReferenceStripPropertyType).Name);
     }
     else if (type == typeof(StringPropertyType))
     {
         StringPropertyType stringPropertyType = (StringPropertyType)item;
         fields.Add(new Field(stringPropertyType.Name, stringPropertyType.Value, FieldType.Text));
     }
 }