Adding MongoDb project for NoSql backend. Adding tests.
Adding MongoDb official driver.
Adding MongoDb primitives. ConnectionStringFactory, DatabaseProviderFactory, and simple FingerprintsDao
Reading MongoDb configurations from a separate config entry
Changing the interface for IModelReference. Id object will be made visible in order to get rid of ugly cast to ModelService of int or any other. Templated version of model reference will be used whenever possible. This was done in order to have a seamless integration with MongoDb data store, which requires ObjectId as a primary key.
Common interface for DAO objects. No strongly typed key should be used when passing Id parameter to DAO classes. It should be passed as encapsulated, in case new data storage is added, it will know exactly what interfaces to implement.
Changing ITrackDao interface and associated TrackDao objects to accomodate new logic of passing and consuming wrapper object on ID database field.
Adjusting FingerprintDao objects.
Refactoring trackdao tests in order to correspond to latest interface changes in ITrackDao.
Adjusting SubFingerprintDao object to a common interface.
Adjusting HashBinDaos to new IModelReference interface.
Extracting common assertions
Refactoring some of the DAO tests
Miscelaneous adjustments
RAM storage redifinition
Adding new method for parameter binding.
Data object refactoring. No more HashCode in IModelService.
Changing the signature for InsertFingerprint method. FingerprintData has to be passed directly to DAO
Refactoring method names.
Removing ReadHashBinsByTable from HashBinDao interface as it is not used by any of the algorithm methods except tests.