Refactoring. Using fingerprinting command and query command. Getting rid of useless methods. Designing the interfaces in a more programmer friendly manner.
Trying to find an appropriate interface for 2 different DB storages
Interface change. NumberOfLSHTables and NumberOfMinHashesPerTable is really a fingerprinting configuration, not query related.
Adding one more layer of data transfer objects in order to have same interface for RDBMS and NOSQL storages. ModelService has to be drastically simplified in order to reduce the overall overhead of managing flingerprinting commands over 2 different data layers.
Removing some of the old school tests related to MS dao.
Defining a generic interface for model service. It will be doing now only what it really needs to do, not all that useless bullshit which it used to define.
Removing useless tables and stored procedures from the database.
Removing NeuralHasher project for now. No need to support it on this stage. Focus on NOSQL an other things.
Removing structures that are not required anymore. Adding data types that will be used accross rdbms and nosql model service.
Adjusting dao objects. Adding Direct SQL execution over the databse on HashBins insert to speed up it a little. Remove logic from stored procedure which shouldn't be there. Modifying ModelService such that it takes advantage over new interface implementation of track, subfingerprint and hashbin dao.
Adjusting existing classes to the same interface. Simplifying the process of generating fingerprints, hashing them, and inserting into the database.
No need to pass Id parameter in InsertTrack, InsertSubFingerprint stored procedure. Adding read subfingerprint by id stored procedure
Adding ignore binding attribute to be able to skip certain properties from a class from being written and read from the database on model binding.
Adding TestClass attribute to test classes.
Fixing concurrency problem with Parrallel fors that use List (which is not thread safe). ConcurrentBags will be used instead (though have to remember order to not preserved).
Adding additional prepopulator to an item when it is populated with values from the database.
Removing useless fields.
Fixing unit tests for Create/Read unit test.
Refactoring Fingerprint and Query commands under the same logical definitions. Same approach shared between 2 processes, having them now with a clearer interface.
Create new namespace for builder (fingerprint and query).