public void ShouldMapPropertiesUsingOwnMapper() { var mappingConfiguration = new DataRowMappingConfiguration <TestClass>() .Add("firstName", x => x.Name) .Add("age", x => x.Age); var mapper = new DataRowMapper <TestClass>(mappingConfiguration); var dataTable = new DataTable(); dataTable.Columns.Add("firstName"); dataTable.Columns.Add("age"); for (int i = 0; i < 5000000; i++) { var row = dataTable.NewRow(); row["firstName"] = "John"; row["age"] = 15; dataTable.Rows.Add(row); } var start = DateTime.Now; var result = mapper.Map(dataTable).ToList(); Console.WriteLine((DateTime.Now - start).TotalSeconds); Assert.AreEqual("John", result.First().Name); Assert.AreEqual(15, result.First().Age); }
public void DataAccessSetUp() { #if (NETCOREAPP2_1) DbProviderFactories.RegisterFactory("System.Data.SqlClient", SqlClientFactory.Instance); #endif TransactionScopeFactory = new DefaultTransactionScopeFactory(true, IsolationLevel.ReadCommitted, TimeSpan.FromSeconds(120)); DatabaseGateway = new DatabaseGateway(); DataRowMapper = new DataRowMapper(); DatabaseContextCache = new ThreadStaticDatabaseContextCache(); var connectionConfigurationProvider = new Mock <IConnectionConfigurationProvider>(); connectionConfigurationProvider.Setup(m => m.Get(It.IsAny <string>())).Returns( new ConnectionConfiguration( "Abacus", "System.Data.SqlClient", "Data Source=.\\sqlexpress;Initial Catalog=Abacus;Integrated Security=SSPI;")); DatabaseContextFactory = new DatabaseContextFactory( connectionConfigurationProvider.Object, new DbConnectionFactory(), new DbCommandFactory(), new ThreadStaticDatabaseContextCache()); DatabaseContextFactory.ConfigureWith("Abacus"); QueryMapper = new QueryMapper(DatabaseGateway, DataRowMapper); }
public void ToDataRow() { var customerRecord = new CustomerRecord { Id = 1, FirstName = "John", LastName = "Smith", AccountBalance = 25.60m, DateJoined = new DateTime(2018, 9, 15), IsActive = true, }; var propertyMapper = new PropertyMapper <CustomerRecord>(); var dataRowMapper = new DataRowMapper <CustomerRecord>(propertyMapper); var dataColumnMapper = new DataColumnMapper <CustomerRecord>(propertyMapper); var dataTable = new DataTable(); var dataColumns = dataColumnMapper.ToDataColumns().ToArray(); dataTable.Columns.AddRange(dataColumns); var dataRow = dataRowMapper.ToDataRow(dataTable, customerRecord); CustomerRecordAssert.Equal(customerRecord, dataRow); }
public void ToDataTableNoRows() { var customerRecords = new List <CustomerRecord>(); var propertyMapper = new PropertyMapper <CustomerRecord>(); var dataColumnMapper = new DataColumnMapper <CustomerRecord>(propertyMapper); var dataRowMapper = new DataRowMapper <CustomerRecord>(propertyMapper); var dataTableMapper = new DataTableMapper <CustomerRecord>(dataColumnMapper, dataRowMapper); var dataTable = dataTableMapper.ToDataTable(customerRecords); Assert.Equal(customerRecords.Count, dataTable.Rows.Count); Assert.Equal(6, dataTable.Columns.Count); Assert.Equal(0, dataTable.Rows.Count); }
static MapperFacade() { Mapper.CreateMap <decimal, bool>().ConvertUsing(src => Converter.ToBoolean(src)); Mapper.CreateMap <decimal?, int?>().ConvertUsing(Converter.ToNullableInt32); Mapper.CreateMap <bool, decimal>().ConvertUsing(src => Converter.ToDecimal(src)); Mapper.CreateMap <int, decimal>().ConvertUsing(src => src); Mapper.CreateMap <decimal, int>().ConvertUsing(src => Converter.ToInt32(src)); Mapper.CreateMap <int?, decimal?>().ConvertUsing(src => src); Mapper.CreateMap <IDataReader, IEnumerable <SearchInArticlesResultItem> >(); Mapper.CreateMap <IDataReader, IEnumerable <VisualEditFieldParams> >(); Mapper.CreateMap <IDataReader, IEnumerable <BackendActionCacheRecord> >(); DataRowMapper.CreateMap <SchemaInfo>(); DataRowMapper.CreateMap <RelationData>(); DataRowMapper.CreateMap <InsertData>(); DataRowMapper.CreateMap <ArticleInfo>(); DataRowMapper.CreateMap <PageInfo>(); }
public void ToDataTableWithMultipleRows() { var customerRecords = new List <CustomerRecord> { new CustomerRecord { Id = 1, FirstName = "John", LastName = "Smith", AccountBalance = 25.60m, DateJoined = new DateTime(2018, 9, 15), IsActive = true, }, new CustomerRecord { Id = 2, FirstName = "Mary", LastName = "McDonanld", AccountBalance = 30.950m, DateJoined = new DateTime(2017, 4, 10), IsActive = false, } }; var propertyMapper = new PropertyMapper <CustomerRecord>(); var dataColumnMapper = new DataColumnMapper <CustomerRecord>(propertyMapper); var dataRowMapper = new DataRowMapper <CustomerRecord>(propertyMapper); var dataTableMapper = new DataTableMapper <CustomerRecord>(dataColumnMapper, dataRowMapper); var dataTable = dataTableMapper.ToDataTable(customerRecords); Assert.Equal(customerRecords.Count, dataTable.Rows.Count); Assert.Equal(6, dataTable.Columns.Count); // TODO: VC: Assert columns equality CustomerRecordAssert.Equal(customerRecords, dataTable.Rows); }
public static void CreateAllMappings(IMapperConfigurationExpression cfg) { cfg.CreateMap <decimal, bool>().ConvertUsing(src => Converter.ToBoolean(src)); cfg.CreateMap <decimal?, int?>().ConvertUsing(src => Converter.ToNullableInt32(src)); cfg.CreateMap <bool, decimal>().ConvertUsing(src => Converter.ToDecimal(src)); cfg.CreateMap <int, decimal>().ConvertUsing(src => src); cfg.CreateMap <decimal, int>().ConvertUsing(src => Converter.ToInt32(src)); cfg.CreateMap <int?, decimal?>().ConvertUsing(src => src); DataRowMapper.CreateMap <SearchInArticlesResultItem>(cfg); DataRowMapper.CreateMap <VisualEditFieldParams>(cfg); DataRowMapper.CreateMap <BackendActionCacheRecord>(cfg); DataRowMapper.CreateMap <SchemaInfo>(cfg); DataRowMapper.CreateMap <RelationData>(cfg); DataRowMapper.CreateMap <InsertData>(cfg); DataRowMapper.CreateMap <ArticleInfo>(cfg); DataRowMapper.CreateMap <PageInfo>(cfg); SiteMapper = Create <SiteMapper>(cfg, true); UserMapper = Create <UserMapper>(cfg, true); ContentMapper = Create <ContentMapper>(cfg, true); ToolbarButtonMapper = Create <ToolbarButtonMapper>(cfg, true); BackendActionMapper = Create <BackendActionMapper>(cfg, true); BackendActionStatusMapper = Create <BackendActionStatusMapper>(cfg); BackendActionTypeMapper = Create <BackendActionTypeMapper>(cfg); ContextMenuItemRowMapper = Create <ContextMenuItemRowMapper>(cfg); ContextMenuRowMapper = Create <ContextMenuRowMapper>(cfg); EntityTypeMapper = Create <EntityTypeMapper>(cfg, true); TreeNodeMapper = Create <TreeNodeMapper>(cfg); ViewTypeMapper = Create <ViewTypeMapper>(cfg); BackendActionViewMapper = Create <BackendActionViewMapper>(cfg); FieldMapper = Create <FieldMapper>(cfg, true); FieldTypeMapper = Create <FieldTypeMapper>(cfg); ArticleMapper = Create <ArticleMapper>(cfg, true); ArticleRowMapper = Create <ArticleRowMapper>(cfg, true); ContainerMapper = Create <ContainerMapper>(cfg, true); ContentFormMapper = Create <ContentFormMapper>(cfg, true); ObjectValueMapper = Create <ObjectValueMapper>(cfg); ArticleListItemRowMapper = Create <ArticleListItemRowMapper>(cfg); StatusHistoryItemMapper = Create <StatusHistoryItemMapper>(cfg, true); StatusTypeRowMapper = Create <StatusTypeRowMapper>(cfg, true); ObjectFormatSearchResultRowMapper = Create <ObjectFormatSearchResultRowMapper>(cfg); ObjectSearchResultRowMapper = Create <ObjectSearchResultRowMapper>(cfg); ObjectFormatVersionRowMapper = Create <ObjectFormatVersionRowMapper>(cfg); ObjectFormatVersionMapper = Create <ObjectFormatVersionMapper>(cfg); DbMapper = Create <DbMapper>(cfg, true); TemplateObjectFormatDtoRowMapper = Create <TemplateObjectFormatDtoRowMapper>(cfg); ExternalNotificationMapper = Create <ExternalNotificationMapper>(cfg); SystemNotificationMapper = Create <SystemNotificationMapper>(cfg); XmlDbUpdateLogMapper = new XmlDbUpdateLogMapper(cfg); XmlDbUpdateActionsLogMapper = new XmlDbUpdateActionsLogMapper(cfg); ArticleScheduleMapper = Create <ArticleScheduleMapper>(cfg, true); ContentConstraintMapper = Create <ContentConstraintMapper>(cfg, true); ContentConstraintRuleMapper = Create <ContentConstraintRuleMapper>(cfg, true); NotificationTemplateFormatMapper = Create <NotificationTemplateFormatMapper>(cfg, true); ContentWorkflowBindMapper = Create <ContentWorkflowBindMapper>(cfg, true); ArticleWorkflowBindMapper = Create <ArticleWorkflowBindMapper>(cfg); ContentLinkMapper = Create <ContentLinkMapper>(cfg, true); ArticleVersionMapper = Create <ArticleVersionMapper>(cfg); SiteFolderMapper = Create <SiteFolderMapper>(cfg, true); ContentFolderMapper = Create <ContentFolderMapper>(cfg, true); ContentGroupMapper = Create <ContentGroupMapper>(cfg, true); DynamicImageMapper = Create <DynamicImageMapper>(cfg, true); ArticleScheduleTaskMapper = Create <ArticleScheduleTaskMapper>(cfg); WorkflowMapper = Create <WorkflowMapper>(cfg, true); MaskTemplateMapper = Create <MaskTemplateMapper>(cfg); VirtualFieldDataMapper = Create <VirtualFieldDataMapper>(cfg); UnionAttrMapper = Create <UnionAttrMapper>(cfg, true); UserQueryAttrMapper = Create <UserQueryAttrMapper>(cfg, true); VirtualFieldsRelationMapper = Create <VirtualFieldsRelationMapper>(cfg); UnionFieldRelationCountMapper = Create <UnionFieldRelationCountMapper>(cfg); BackendActionLogMapper = Create <BackendActionLogMapper>(cfg, true); ButtonTraceRowMapper = Create <ButtonTraceRowMapper>(cfg); RemovedEntitiesRowMapper = Create <RemovedEntitiesRowMapper>(cfg); BackendActionLogRowMapper = Create <BackendActionLogRowMapper>(cfg); ToolbarButtonRowMapper = Create <ToolbarButtonRowMapper>(cfg); SessionsLogMapper = Create <SessionsLogMapper>(cfg, true); SessionsLogRowMapper = Create <SessionsLogRowMapper>(cfg); CustomActionMapper = Create <CustomActionMapper>(cfg, true); CustomActionListItemRowMapper = Create <CustomActionListItemRowMapper>(cfg); ContextMenuMapper = Create <ContextMenuMapper>(cfg); ContextMenuItemMapper = Create <ContextMenuItemMapper>(cfg, true); ContentListItemRowMapper = Create <ContentListItemRowMapper>(cfg); UserListItemRowMapper = Create <UserListItemRowMapper>(cfg); UserGroupMapper = Create <UserGroupMapper>(cfg, true); UserGroupListItemRowMapper = Create <UserGroupListItemRowMapper>(cfg); NotificationMapper = Create <NotificationMapper>(cfg, true); NotificationListItemRowMapper = Create <NotificationListItemRowMapper>(cfg); VisualEditorPluginListItemRowMapper = Create <VisualEditorPluginListItemRowMapper>(cfg); QpPluginListItemRowMapper = Create <QpPluginListItemRowMapper>(cfg); QpPluginVersionListItemRowMapper = Create <QpPluginVersionListItemRowMapper>(cfg); WorkflowListItemRowMapper = Create <WorkflowListItemRowMapper>(cfg); VisualEditorPluginMapper = Create <VisualEditorPluginMapper>(cfg, true); VisualEditorCommandMapper = Create <VisualEditorCommandMapper>(cfg, true); QpPluginMapper = Create <QpPluginMapper>(cfg, true); QpPluginFieldMapper = Create <QpPluginFieldMapper>(cfg, true); QpPluginVersionMapper = Create <QpPluginVersionMapper>(cfg, true); EntityPermissionLevelMapper = Create <EntityPermissionLevelMapper>(cfg); PermissionListItemRowMapper = Create <PermissionListItemRowMapper>(cfg); SitePermissionMapper = Create <SitePermissionMapper>(cfg, true); ContentPermissionMapper = Create <ContentPermissionMapper>(cfg, true); ArticlePermissionMapper = Create <ArticlePermissionMapper>(cfg, true); WorkflowPermissionMapper = Create <WorkflowPermissionMapper>(cfg, true); SiteFolderPermissionMapper = Create <SiteFolderPermissionMapper>(cfg, true); EntityTypePermissionMapper = Create <EntityTypePermissionMapper>(cfg, true); BackendActionPermissionMapper = Create <BackendActionPermissionMapper>(cfg, true); FieldListItemRowMapper = Create <FieldListItemRowMapper>(cfg); SiteListItemRowMapper = Create <SiteListItemRowMapper>(cfg); ChildEntityPermissionListItemRowMapper = Create <ChildEntityPermissionListItemRowMapper>(cfg); ActionPermissionTreeNodeRowMapper = Create <ActionPermissionTreeNodeRowMapper>(cfg); VisualEditorCommandRowMapper = Create <VisualEditorCommandRowMapper>(cfg); PageTemplateRowMapper = Create <PageTemplateRowMapper>(cfg, true); PageTemplateSearchResultRowMapper = Create <PageTemplateSearchResultRowMapper>(cfg, true); PageRowMapper = Create <PageRowMapper>(cfg, true); ObjectRowMapper = Create <ObjectRowMapper>(cfg, true); VisualEditorStyleRowMapper = Create <VisualEditorStyleRowMapper>(cfg); CharsetMapper = Create <CharsetMapper>(cfg, true); VisualEditorStyleListItemRowMapper = Create <VisualEditorStyleListItemRowMapper>(cfg); VisualEditorStyleMapper = Create <VisualEditorStyleMapper>(cfg, true); StatusTypeListItemRowMapper = Create <StatusTypeListItemRowMapper>(cfg); WorkFlowRuleMapper = Create <WorkFlowRuleMapper>(cfg, true); NetLanguageMapper = Create <NetLanguageMapper>(cfg, true); LocaleMapper = Create <LocaleMapper>(cfg, true); PageTemplateMappper = Create <PageTemplateMappper>(cfg, true); PageMapper = Create <PageMapper>(cfg, true); ObjectMapper = Create <ObjectMapper>(cfg, true); ObjectTypeMapper = Create <ObjectTypeMapper>(cfg, true); ObjectFormatMapper = Create <ObjectFormatMapper>(cfg, true); ObjectFormatRowMapper = Create <ObjectFormatRowMapper>(cfg); StatusTypeMapper = Create <StatusMapper>(cfg, true); SiteFolderRowMapper = Create <SiteFolderRowMapper>(cfg); ContentFolderRowMapper = Create <ContentFolderRowMapper>(cfg); }