예제 #1
0
파일: Query.cs 프로젝트: Dziurson/WPO-ORM
        private WPOType GetObjectWithDependencies <WPOType>(string fieldName, string fieldValue, int depth)
            where WPOType : WPOBaseObject
        {
            QueryFilter dependencyFilter = new QueryFilter(typeof(WPOType).CreateModelObj().TableObject);

            dependencyFilter.AddCondition(fieldName + " = " + fieldValue);
            Dictionary <string, string> dataRow = session.dbConnection.ExecuteReader(dependencyFilter).FirstOrDefault();

            bool    alreadyExist;
            WPOType obj = session.CreateOrGetObject <WPOType>(dataRow, dependencyFilter.Table, out alreadyExist);

            obj.Status  = ObjectStatus.Unchanged;
            obj.DataRow = dataRow;

            Dictionary <PropertyInfo, string> values = new Dictionary <PropertyInfo, string>();
            List <PropertyInfo> properties           = obj.GetPropertiesByAttribute <WPOColumnAttribute>();

            GetSimpleProperties(obj, dataRow, values, properties);
            obj = (WPOType)BasicMapper.MapPropertiesToObject(obj, values);
            GetRelatedObjects(obj, dataRow, properties, depth - 1);
            obj.TableObject = new WPOTableObject(obj);

            if (!alreadyExist)
            {
                session.objectsFromDatabase.Add((WPOBaseObject)obj.Clone());
            }

            return(obj);
        }
        public InMemoryBudgetBucketRepository([NotNull] BasicMapper<BudgetBucketDto, BudgetBucket> mapper)
        {
            if (mapper == null)
            {
                throw new ArgumentNullException("mapper");
            }

            this.mapper = mapper;
        }
        public XamlOnDiskMatchingRuleRepository([NotNull] BasicMapper<MatchingRuleDto, MatchingRule> dataToDomainMapper, [NotNull] BasicMapper<MatchingRule, MatchingRuleDto> domainToDataMapper)
        {
            if (dataToDomainMapper == null)
            {
                throw new ArgumentNullException("dataToDomainMapper");
            }

            if (domainToDataMapper == null)
            {
                throw new ArgumentNullException("domainToDataMapper");
            }

            this.dataToDomainMapper = dataToDomainMapper;
            this.domainToDataMapper = domainToDataMapper;
        }
예제 #4
0
        public void Init()
        {
            _dataset = new Boo[Count];
            for (var i = 0; i < _dataset.Length; i++)
            {
                _dataset[i] = new Boo
                {
                    Bool   = i % 10 == 0,
                    Float  = i,
                    Int    = i,
                    Double = i
                };
            }

            _basicMapper    = new BasicMapper <Foo>();
            _compiledMapper = new CompiledMapper <Foo>();

            var config = new MapperConfiguration(cfg => cfg.CreateMap <Boo, Foo>());

            _autoMapper = config.CreateMapper();
        }
        public CsvOnDiskStatementModelRepositoryV1(
            [NotNull] IUserMessageBox userMessageBox,
            [NotNull] BankImportUtilities importUtilities,
            [NotNull] ILogger logger,
            [NotNull] BasicMapper<TransactionSetDto, StatementModel> dtoToDomainMapper,
            [NotNull] BasicMapper<StatementModel, TransactionSetDto> domainToDtoMapper)
        {
            if (userMessageBox == null)
            {
                throw new ArgumentNullException("userMessageBox");
            }

            if (importUtilities == null)
            {
                throw new ArgumentNullException("importUtilities");
            }

            if (logger == null)
            {
                throw new ArgumentNullException("logger");
            }

            if (dtoToDomainMapper == null)
            {
                throw new ArgumentNullException("dtoToDomainMapper");
            }

            if (domainToDtoMapper == null)
            {
                throw new ArgumentNullException("domainToDtoMapper");
            }

            this.userMessageBox = userMessageBox;
            this.importUtilities = importUtilities;
            this.logger = logger;
            this.dtoToDomainMapper = dtoToDomainMapper;
            this.domainToDtoMapper = domainToDtoMapper;
        }
예제 #6
0
파일: Query.cs 프로젝트: Dziurson/WPO-ORM
        private void GetObjects()
        {
            InternalList = new List <T>();
            int depth = WPOManager.Configuration.DependencyDepth > 0 ? WPOManager.Configuration.DependencyDepth : int.MaxValue;

            try
            {
                session.dbConnection.Open();
                foreach (Dictionary <string, string> dataRow in session.dbConnection.ExecuteReader(filter))
                {
                    bool alreadyExist;
                    T    obj = session.CreateOrGetObject <T>(dataRow, filter.Table, out alreadyExist);
                    obj.Status  = ObjectStatus.Unchanged;
                    obj.DataRow = dataRow;

                    Dictionary <PropertyInfo, string> values = new Dictionary <PropertyInfo, string>();
                    List <PropertyInfo> properties           = obj.GetPropertiesByAttribute <WPOColumnAttribute>();
                    GetSimpleProperties(obj, dataRow, values, properties);
                    obj = (T)BasicMapper.MapPropertiesToObject(obj, values);
                    GetRelatedObjects(obj, dataRow, properties, depth - 1);
                    obj.TableObject = new WPOTableObject(obj);

                    if (!alreadyExist)
                    {
                        session.objectsFromDatabase.Add((WPOBaseObject)obj.Clone());
                    }

                    InternalList.Add(obj);
                }
            }
            finally
            {
                filter.Clear();
                session.dbConnection.Close();
            }
        }
        public XamlOnDiskBudgetRepository(
            [NotNull] IBudgetBucketRepository bucketRepository,
            [NotNull] BasicMapper<BudgetCollection, BudgetCollectionDto> toDtoMapper,
            [NotNull] BasicMapper<BudgetCollectionDto, BudgetCollection> toDomainMapper)
        {
            if (bucketRepository == null)
            {
                throw new ArgumentNullException("bucketRepository");
            }

            if (toDtoMapper == null)
            {
                throw new ArgumentNullException("toDtoMapper");
            }

            if (toDomainMapper == null)
            {
                throw new ArgumentNullException("toDomainMapper");
            }

            BudgetBucketRepository = bucketRepository;
            this.toDtoMapper = toDtoMapper;
            this.toDomainMapper = toDomainMapper;
        }
        public XamlOnDiskLedgerBookRepository(
            [NotNull] BasicMapper<LedgerBookDto, LedgerBook> dataToDomainMapper,
            [NotNull] BasicMapper<LedgerBook, LedgerBookDto> domainToDataMapper,
            [NotNull] ILogger logger)
        {
            if (dataToDomainMapper == null)
            {
                throw new ArgumentNullException("dataToDomainMapper");
            }

            if (domainToDataMapper == null)
            {
                throw new ArgumentNullException("domainToDataMapper");
            }

            if (logger == null)
            {
                throw new ArgumentNullException("logger");
            }

            this.dataToDomainMapper = dataToDomainMapper;
            this.domainToDataMapper = domainToDataMapper;
            this.logger = logger;
        }
예제 #9
0
 public BasicMapperShould()
 {
     _mapper = new BasicMapper <Foo>();
 }
예제 #10
0
 public CustomerController()
 {
     mapper = new BasicMapper();
 }
 public XamlOnDiskBudgetRepositoryTestHarness(
     IBudgetBucketRepository bucketRepo, 
     BasicMapper<BudgetCollection, BudgetCollectionDto> toDtoMapper, 
     BasicMapper<BudgetCollectionDto, BudgetCollection> toDomainMapper)
     : base(bucketRepo, toDtoMapper, toDomainMapper) { }