public void Configure(EntityTypeBuilder <Transaction> builder)
        {
            builder.HasKey(x => x.Id);

            builder.Property(x => x.Id).ValueGeneratedNever();

            builder.Property(x => x.ClientName)
            .HasColumnType("varchar(255)")
            .IsRequired();


            builder.Property(x => x.Amount)
            .HasColumnType("decimal(38,18)");

            IValueConverterFactory valueConverterFactory = new ValueConverterFactory();

            var transactionStatusValueConverter = valueConverterFactory.CreateEnumToStringValueConverter <TransactionStatus>();

            builder.Property(x => x.Status)
            .HasConversion(transactionStatusValueConverter)
            .HasColumnType("varchar(50)");

            var transactionTypeValueConverter = valueConverterFactory.CreateEnumToStringValueConverter <TransactionType>();

            builder.Property(x => x.Type)
            .HasConversion(transactionTypeValueConverter)
            .HasColumnType("varchar(50)");;
        }
Example #2
0
        public void TestFactoryRegisterNull()
        {
            //Given
            IValueConverter conv = null;

            //Then
            Assert.ThrowsAny <ArgumentNullException>(() => ValueConverterFactory.Register(conv));
        }
Example #3
0
        public void TestFactoryRegister()
        {
            //Give
            var conv = new StringConverter();

            //When
            ValueConverterFactory.Register(conv);

            //Then
            Assert.Equal(typeof(string), ValueConverterFactory.Get <string>().ConvertingType);
        }
        private ExcelIteratorConfigurationBuilder()
        {
            _trimWhitespaceForColumnNames = false;
            _sheetName = string.Empty;
            _firstRowContainsColumnNames = true;
            _emptyColumnNamesSkipped     = true;

            _propertyMaps = typeof(T).GetProperties()
                            .Select(p => new ExcelIteratorPropertyMap
            {
                Property             = p,
                MapStrategy          = ExcelIteratorPropertyMapStrategy.ByName,
                ColumnName           = p.Name,
                SourceValueConverter = ValueConverterFactory.Create(p.PropertyType)
            })
                            .ToList();
        }
Example #5
0
        internal object ConvertBack([CanBeNull] object value, [NotNull] Type targetType, [CanBeNull] object parameter)
        {
            var valueConverter = ValueConverterFactory.GetOrCreate(_converterType);

            try
            {
                return(valueConverter.ConvertBack(value, targetType, parameter, _converterCulture));
            }
            catch (Exception ex)
            {
                Log($"An \"{LogFormatter.FormatException(ex)}\" exception occurred while converting \"{value ?? "null"}\" value from the target item to the source one " +
                    $"using \"{LogFormatter.FormatTypeName(_converterType)}\" value converter. This might reduce binding performance. " +
                    $"Please return \"{nameof(BindingValue)}.{nameof(BindingValue.UnsetValue)}\" value instead of rising an exception.");

                return(BindingValue.UnsetValue);
            }
        }
Example #6
0
        internal override ItemContainerGenerator CreateItemContainerGenerator()
        {
            var pivotHeaderItemFactory = new FrameworkElementFactory(typeof(PivotHeaderItem));

            if (this.ItemTemplate == null)
            {
                pivotHeaderItemFactory.SetBinding(
                    BackgroundProperty,
                    new Binding(nameof(PivotHeaderItem.IsSelected))
                {
                    RelativeSource = new RelativeSource(RelativeSourceMode.Self),
                    Converter      = ValueConverterFactory.Make <bool, Brush>(x => x ? SelectedItemBackgroundBrush : null),
                });
                pivotHeaderItemFactory.SetBinding(ContentControl.ContentProperty, new Binding(nameof(PivotItem.Header)));
                // TODO: listBoxItemFactory.SetValue(TextBlock.FontSizeProperty, 20);
            }

            return(new ItemContainerGenerator(pivotHeaderItemFactory, this.Items));
        }
Example #7
0
        static void testAssert <T>(string data, T value, bool givenExpectDataEqual = true)
        {
            //Given
            var conv = ValueConverterFactory.Get <T>();

            //When
            conv.Serialize(value, typeof(T), out var data2);
            conv.Deserialize(data, typeof(T), out var value2);

            //Then
            if (givenExpectDataEqual)
            {
                Assert.Equal(data, data2);
            }
            else
            {
                Assert.NotEqual(data, data2);
            }

            Assert.Equal(value, value2);
        }