Example #1
0
        private static IValueImportModel GetValue(Import.ImportEntity importEntity, Guid? relatedEntity, Import.ImportAttribute importAttribute, string language, bool isUpdate, string now)
        {
            IValueImportModel value;
            switch (importAttribute.Type)
            {
                case "Boolean":
                    //value = new ValueImportModel<bool?>(entity) { Value = true };
                    value = new ValueImportModel<bool?>(importEntity);	// Test null-Value
                    break;
                case "DateTime":
                    value = new ValueImportModel<DateTime?>(importEntity) { Value = DateTime.Now };
                    break;
                case "Entity":
                    var entities = new List<Guid>();
                    if (relatedEntity.HasValue)
                        entities.Add(relatedEntity.Value);
                    value = new ValueImportModel<List<Guid>>(importEntity) { Value = entities };
                    break;
                case "Hyperlink":
                    value = new ValueImportModel<string>(importEntity) { Value = "http://www.2sic.com" + (isUpdate ? " Updated " + now : "") };
                    break;
                case "Number":
                    value = new ValueImportModel<decimal?>(importEntity) { Value = (decimal?)123.12d };
                    break;
                case "String":
                    value = new ValueImportModel<string>(importEntity) { Value = "SampleString " + importAttribute.StaticName + " " + language + (isUpdate ? " Updated" + now : "") };
                    break;
                default:
                    throw new ArgumentOutOfRangeException(importAttribute.Type);
            }

            value.ValueDimensions = new List<Import.ValueDimension>
            {
                new Import.ValueDimension {DimensionExternalKey = language, ReadOnly = false}
            };
            return value;
        }
Example #2
0
        private static IValueImportModel GetValueModel(string valueString, string valueType, string valueLanguage, bool valueRedOnly, bool resolveHyperlink, Entity entity)
        {
            IValueImportModel valueModel;

            switch (valueType)
            {
            case "Boolean":
            {
                valueModel = new ValueImportModel <bool?>(entity)
                {
                    Value = string.IsNullOrEmpty(valueString) ? null : new Boolean?(Boolean.Parse(valueString))
                };
            }
            break;

            case "Number":
            {
                valueModel = new ValueImportModel <decimal?>(entity)
                {
                    Value = string.IsNullOrEmpty(valueString) ? null : new Decimal?(Decimal.Parse(valueString))
                };
            }
            break;

            case "DateTime":
            {
                valueModel = new ValueImportModel <DateTime?>(entity)
                {
                    Value = string.IsNullOrEmpty(valueString) ? null : new DateTime?(DateTime.Parse(valueString))
                };
            }
            break;

            case "Hyperlink":
            {
                string valueReference;
                if (string.IsNullOrEmpty(valueString))
                {
                    valueReference = valueString;
                }
                else if (!resolveHyperlink)
                {
                    valueReference = valueString;
                }
                else
                {
                    valueReference = GetFileReference(valueString, valueString);
                    if (valueReference == valueString)
                    {           // Maybe it is a page and not a file
                        valueReference = GetTabReference(valueString, valueString);
                    }
                }
                valueModel = new ValueImportModel <string>(entity)
                {
                    Value = valueReference
                };
            }
            break;

            case "Entity":
            {
                valueModel = new ValueImportModel <List <Guid> >(entity)
                {
                    Value = string.IsNullOrEmpty(valueString) ? new List <Guid>() : valueString.Split(',').Select(Guid.Parse).ToList()
                };
            }
            break;

            default:
            {           // String
                valueModel = new ValueImportModel <string>(entity)
                {
                    Value = HttpUtility.HtmlDecode(valueString)
                };
            }
            break;
            }

            valueModel.AppendLanguageReference(valueLanguage, valueRedOnly);
            return(valueModel);
        }
Example #3
0
        // Todo / warning: highly duplicate code with ValueImportModel.cs
        // but can't quickly refactor, because it's still a bit different
        private static IValueImportModel GetValueModel(Import.ImportEntity importEntity, string valueString, string valueType, string valueLanguage = null, bool valueRedOnly = false, bool resolveHyperlink = false)
        {
            IValueImportModel valueModel;
            var valueConverter = Factory.Container.Resolve<IEavValueConverter>();

            var type = AttributeTypeEnum.Undefined;
            if (valueType != null && Enum.IsDefined(typeof(AttributeTypeEnum), valueType))
                type = (AttributeTypeEnum)Enum.Parse(typeof(AttributeTypeEnum), valueType);

            switch (type)
            {
                case AttributeTypeEnum.Boolean:
                    {
                        valueModel = new ValueImportModel<bool?>(importEntity)
                        {
                            Value = string.IsNullOrEmpty(valueString) ? null : new Boolean?(Boolean.Parse(valueString))
                        };
                    }
                    break;

                case AttributeTypeEnum.Number:
                    {
                        valueModel = new ValueImportModel<decimal?>(importEntity)
                        {
                            Value = string.IsNullOrEmpty(valueString) ? null : new Decimal?(Decimal.Parse(valueString))
                        };
                    }
                    break;

                case AttributeTypeEnum.DateTime:
                    {
                        valueModel = new ValueImportModel<DateTime?>(importEntity)
                        {
                            Value = string.IsNullOrEmpty(valueString) ? null : new DateTime?(DateTime.Parse(valueString.Replace("T", " ").Replace("Z", " ")))
                        };
                    }
                    break;

                case AttributeTypeEnum.Hyperlink:
                    {
                        string valueReference;
                        if (string.IsNullOrEmpty(valueString) || !resolveHyperlink)
                            valueReference = valueString;
                        else
                        {
                            valueReference = valueConverter.Convert(ConversionScenario.ConvertFriendlyToData, valueType, valueString);
                        }
                        valueModel = new ValueImportModel<string>(importEntity) { Value = valueReference };
                    }
                    break;

                case AttributeTypeEnum.Entity:
                    {
                        // trying to re-use existing code
                        valueModel = ValueImportModel.GenerateLightValueImportModel(valueString, valueType, importEntity);
                        //valueModel = new ValueImportModel<List<Guid>>(importEntity)
                        //{
                        //    Value = string.IsNullOrEmpty(valueString)
                        //        ? new List<Guid?>()
                        //        : valueString.Split(',').Select(Guid.Parse).ToList()
                        //};
                    }
                    break;

                case AttributeTypeEnum.String:
                case AttributeTypeEnum.Custom:
                default:
                    {   // String
                        valueModel = new ValueImportModel<string>(importEntity) { Value = valueString };
                    }
                    break;
            }
            if (valueLanguage != null)
            {
                valueModel.AppendLanguageReference(valueLanguage, valueRedOnly);
            }
            return valueModel;
        }