From 5e757d2ad1ae3ad158a9b5f6077abcfaf9fac616 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Wed, 16 Jan 2008 12:25:13 +0000 Subject: * More work on getting the database framework to actually work --- .../TribalMedia.Framework.Data/BaseDataReader.cs | 4 +- .../BaseDatabaseConnector.cs | 2 + .../TribalMedia.Framework.Data/BaseFieldMapper.cs | 48 ++-------------------- .../TribalMedia.Framework.Data/BaseRowMapper.cs | 37 +++-------------- .../TribalMedia.Framework.Data/BaseSchema.cs | 30 ++------------ .../TribalMedia.Framework.Data/BaseTableMapper.cs | 12 +++--- 6 files changed, 24 insertions(+), 109 deletions(-) (limited to 'ThirdParty/TribalMedia') diff --git a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseDataReader.cs b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseDataReader.cs index 34f894c..67fb7c1 100644 --- a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseDataReader.cs +++ b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseDataReader.cs @@ -30,11 +30,11 @@ using System.IO; namespace TribalMedia.Framework.Data { - public class DataReader + public class BaseDataReader { private readonly IDataReader m_source; - public DataReader(IDataReader source) + public BaseDataReader(IDataReader source) { m_source = source; } diff --git a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseDatabaseConnector.cs b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseDatabaseConnector.cs index ae70fc1..e5d4d62 100644 --- a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseDatabaseConnector.cs +++ b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseDatabaseConnector.cs @@ -135,5 +135,7 @@ namespace TribalMedia.Framework.Data { return value; } + + public abstract BaseDataReader CreateReader(IDataReader reader); } } \ No newline at end of file diff --git a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseFieldMapper.cs b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseFieldMapper.cs index 20d8cf1..20f919a 100644 --- a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseFieldMapper.cs +++ b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseFieldMapper.cs @@ -29,10 +29,7 @@ using System.Collections.Generic; using System.Data.Common; namespace TribalMedia.Framework.Data -{ - //public delegate TField RowMapperGetAccessor(TRowMapper rowMapper); - //public delegate void RowMapperSetAccessor(TRowMapper rowMapper, TField value); - +{ public delegate TField ObjectGetAccessor(TObj obj); public delegate void ObjectSetAccessor(TObj obj, TField value); @@ -62,7 +59,7 @@ namespace TribalMedia.Framework.Data m_tableMapper = tableMapper; } - public abstract void SetPropertyFromReader(object mapper, DataReader reader); + public abstract void SetPropertyFromReader(object mapper, BaseDataReader reader); public void RawAddParam(DbCommand command, List fieldNames, string fieldName, object value) { @@ -84,7 +81,7 @@ namespace TribalMedia.Framework.Data RawAddParam(command, fieldNames, fieldName, m_tableMapper.ConvertToDbType(value)); } - protected virtual object GetValue(DataReader reader) + protected virtual object GetValue(BaseDataReader reader) { object value; @@ -128,43 +125,6 @@ namespace TribalMedia.Framework.Data } } - //public class RowMapperField : FieldMapper - // where TRowMapper : RowMapper - //{ - // private readonly RowMapperGetAccessor m_fieldGetAccessor; - // private readonly RowMapperSetAccessor m_fieldSetAccessor; - - // public override object GetParamValue(object obj) - // { - // return m_fieldGetAccessor((TRowMapper) obj); - // } - - // public override void SetPropertyFromReader(object mapper, DataReader reader) - // { - // object value; - - // value = GetValue(reader); - - // if (value == null) - // { - // m_fieldSetAccessor((TRowMapper) mapper, default(TField)); - // } - // else - // { - // m_fieldSetAccessor((TRowMapper) mapper, (TField) value); - // } - // } - - - // public RowMapperField(TableMapper tableMapper, string fieldName, RowMapperGetAccessor rowMapperGetAccessor, - // RowMapperSetAccessor rowMapperSetAccessor) - // : base(tableMapper, fieldName, typeof(TField)) - // { - // m_fieldGetAccessor = rowMapperGetAccessor; - // m_fieldSetAccessor = rowMapperSetAccessor; - // } - //} - public class ObjectField : BaseFieldMapper { private readonly ObjectGetAccessor m_fieldGetAccessor; @@ -175,7 +135,7 @@ namespace TribalMedia.Framework.Data return m_fieldGetAccessor((TObject)obj); } - public override void SetPropertyFromReader(object obj, DataReader reader) + public override void SetPropertyFromReader(object obj, BaseDataReader reader) { object value; diff --git a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseRowMapper.cs b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseRowMapper.cs index 2ab8daf..e8292fd 100644 --- a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseRowMapper.cs +++ b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseRowMapper.cs @@ -28,14 +28,14 @@ using TribalMedia.Framework.Data; namespace TribalMedia.Framework.Data { - public abstract class RowMapper + public abstract class BaseRowMapper { - public abstract void FillObject(DataReader reader); + public abstract void FillObject(BaseDataReader reader); } - public class ObjectMapper : RowMapper + public class BaseRowMapper : BaseRowMapper { - private readonly Schema m_schema; + private readonly BaseSchema m_schema; private readonly TObj m_obj; public TObj Object @@ -43,38 +43,13 @@ namespace TribalMedia.Framework.Data get { return m_obj; } } - public ObjectMapper(Schema schema, TObj obj) + public BaseRowMapper(BaseSchema schema, TObj obj) { m_schema = schema; m_obj = obj; } - public override void FillObject(DataReader reader) - { - foreach (BaseFieldMapper fieldMapper in m_schema.Fields.Values) - { - fieldMapper.SetPropertyFromReader(m_obj, reader); - } - } - } - - public class RowMapper : RowMapper - { - private readonly Schema m_schema; - private readonly TObj m_obj; - - public TObj Object - { - get { return m_obj; } - } - - public RowMapper(Schema schema, TObj obj) - { - m_schema = schema; - m_obj = obj; - } - - public override void FillObject(DataReader reader) + public override void FillObject(BaseDataReader reader) { foreach (BaseFieldMapper fieldMapper in m_schema.Fields.Values) { diff --git a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseSchema.cs b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseSchema.cs index fc59f3b..a6740c2 100644 --- a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseSchema.cs +++ b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseSchema.cs @@ -29,7 +29,7 @@ using TribalMedia.Framework.Data; namespace TribalMedia.Framework.Data { - public class Schema + public class BaseSchema { protected BaseTableMapper m_tableMapper; protected Dictionary m_mappings; @@ -39,16 +39,16 @@ namespace TribalMedia.Framework.Data get { return m_mappings; } } - public Schema(BaseTableMapper tableMapper) + public BaseSchema(BaseTableMapper tableMapper) { m_mappings = new Dictionary(); m_tableMapper = tableMapper; } } - public class ObjectSchema : Schema + public class BaseSchema : BaseSchema { - public ObjectSchema(BaseTableMapper tableMapper) + public BaseSchema(BaseTableMapper tableMapper) : base(tableMapper) { } @@ -65,26 +65,4 @@ namespace TribalMedia.Framework.Data return rowMapperField; } } - - //public class RowMapperSchema : Schema - // where TRowMapper : RowMapper - //{ - // public RowMapperSchema(TableMapper tableMapper) : base(tableMapper) - // { - // } - - // public RowMapperField AddMapping(string fieldName, - // RowMapperGetAccessor - // rowMapperGetAccessor, - // RowMapperSetAccessor - // rowMapperSetAccessor) - // { - // RowMapperField rowMapperField = - // new RowMapperField(m_tableMapper, fieldName, rowMapperGetAccessor, rowMapperSetAccessor); - - // m_mappings.Add(fieldName, rowMapperField); - - // return rowMapperField; - // } - //} } \ No newline at end of file diff --git a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseTableMapper.cs b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseTableMapper.cs index e4fe0fd..e4ea055 100644 --- a/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseTableMapper.cs +++ b/ThirdParty/TribalMedia/TribalMedia.Framework.Data/BaseTableMapper.cs @@ -62,8 +62,8 @@ namespace TribalMedia.Framework.Data get { return m_tableName; } } - protected Schema m_schema; - public Schema Schema + protected BaseSchema m_schema; + public BaseSchema Schema { get { return m_schema; } } @@ -110,9 +110,9 @@ namespace TribalMedia.Framework.Data return m_database.ConvertToDbType(value); } - protected virtual DataReader CreateReader(IDataReader reader) + protected virtual BaseDataReader CreateReader(IDataReader reader) { - return new DataReader(reader); + return m_database.CreateReader(reader); } } @@ -138,7 +138,7 @@ namespace TribalMedia.Framework.Data { if (reader.Read()) { - result = FromReader(CreateReader(reader)); + result = FromReader( CreateReader(reader)); success = true; } else @@ -240,6 +240,6 @@ namespace TribalMedia.Framework.Data } } - public abstract TRowMapper FromReader(DataReader reader); + public abstract TRowMapper FromReader(BaseDataReader reader); } } \ No newline at end of file -- cgit v1.1