Exemple #1
0
        public void GivenIHaveSpecificationForType(string type, Table table)
        {
            var targetType = Assembly
                             .GetExecutingAssembly()
                             .GetTypes()
                             .FirstOrDefault(x => x.FullName.EndsWith(type));

            var properties = targetType
                             .GetProperties(BindingFlags.Instance | BindingFlags.Public)
                             .ToDictionary(info => info.Name);

            var typeMappings = table.CreateSet <FixedLengthTypeMapping>().ToArray();

            var container = new FieldsContainer <IFixedFieldSettingsContainer>();

            foreach (var typeMapping in typeMappings)
            {
                var propertyInfo = properties[typeMapping.Name];

                var settings = new FixedFieldSettingsConstructor(propertyInfo);

                settings.WithLength(typeMapping.Length);

                if (!string.IsNullOrEmpty(typeMapping.NullValue))
                {
                    settings.AllowNull(typeMapping.NullValue);
                }

                switch (typeMapping.Padding)
                {
                case Padding.Right:
                    settings.WithRightPadding(typeMapping.PaddingCharElement);
                    break;

                case Padding.Left:
                    settings.WithLeftPadding(typeMapping.PaddingCharElement);
                    break;
                }

                container.AddOrUpdate(propertyInfo, settings);
            }

            var descriptor = new LayoutDescriptorBase <IFixedFieldSettingsContainer>(container)
            {
                HasHeader = false
            };

            ScenarioContext.Current.Add(() => descriptor, descriptor);
        }
        public void GivenIHaveSpecificationForType(string type, Table table)
        {
            var targetType = Assembly
                .GetExecutingAssembly()
                .GetTypes()
                .FirstOrDefault(x => x.FullName.EndsWith(type));

            var properties = targetType
                .GetProperties(BindingFlags.Instance | BindingFlags.Public)
                .ToDictionary(info => info.Name);

            var typeMappings = table.CreateSet<FixedLengthTypeMapping>().ToArray();

            var container = new FieldsContainer<IFixedFieldSettingsContainer>();

            foreach (var typeMapping in typeMappings)
            {
                var propertyInfo = properties[typeMapping.Name];

                var settings = new FixedFieldSettingsConstructor(propertyInfo);

                settings.WithLength(typeMapping.Length);

                if (!string.IsNullOrEmpty(typeMapping.NullValue))
                {
                    settings.AllowNull(typeMapping.NullValue);
                }

                switch (typeMapping.Padding)
                {
                    case Padding.Right:
                        settings.WithRightPadding(typeMapping.PaddingCharElement);
                        break;
                    case Padding.Left:
                        settings.WithLeftPadding(typeMapping.PaddingCharElement);
                        break;
                }

                container.AddOrUpdate(propertyInfo, settings);
            }

            var descriptor = new LayoutDescriptorBase<IFixedFieldSettingsContainer>(container)
            {
                HasHeader = false
            };

            ScenarioContext.Current.Add(() => descriptor, descriptor);

        }