FileScanner.PersistanceManager.SqLitePersistanceManager.SaveSearch C# (CSharp) Method

SaveSearch() public method

public SaveSearch ( ISearch search ) : void
search ISearch
return void
        public void SaveSearch(ISearch search)
        {
            var searchData = new Dictionary<string, string>
            {
                {"startTime", search.StartTime.Ticks.ToString()},
                {"endTime", search.EndTime.Ticks.ToString()},
                {"processedFilesCount", search.ProcessedFilesCount.ToString(CultureInfo.InvariantCulture)}
            };
            _sqLiteDatabase.Insert("[searches]", searchData);
            int searchID = int.Parse(_sqLiteDatabase.ExecuteScalar("SELECT seq FROM sqlite_sequence where name=\"searches\""));

            foreach (string phrase in search.Phrases)
            {
                var phraseData = new Dictionary<string, string>
                {
                    {"search_id", searchID.ToString(CultureInfo.InvariantCulture)},
                    {"phrase", phrase},
                };
                _sqLiteDatabase.Insert("[phrases]", phraseData);
            }

            foreach (MatchingFile file in search)
            {
                var fileData = new Dictionary<string, string>
                {
                    {"search_id", searchID.ToString(CultureInfo.InvariantCulture)},
                    {"fileName", file.FileName},
                    {"fullPath", file.FullPath},
                    {"sizeInBytes", file.SizeInBytes.ToString(CultureInfo.InvariantCulture)}
                };
                _sqLiteDatabase.Insert("[files]", fileData);
                int fileID = int.Parse(_sqLiteDatabase.ExecuteScalar("SELECT seq FROM sqlite_sequence where name=\"files\""));

                foreach (Match match in file.Matches)
                {
                    var matchData = new Dictionary<string, string>
                    {
                        {"file_id", fileID.ToString(CultureInfo.InvariantCulture)},
                        {"[index]", match.Index.ToString(CultureInfo.InvariantCulture)},
                        {"value", match.Value},
                    };
                    _sqLiteDatabase.Insert("[matches]", matchData);
                }
            }
        }

Usage Example

Example #1
0
        private void PersistResults(DateTime startDate, DateTime endDate, IEnumerable <string> phrases)
        {
            var matchingFile  = new PersistanceManager.MatchingFile(_searchFile, _searchPhrase, 0, _matches);
            var matchingFiles = new List <PersistanceManager.MatchingFile>()
            {
                matchingFile
            };
            var processedFilesCount = 1u;

            var storedSearch = new PersistanceManager.Search(startDate, endDate, processedFilesCount, phrases, matchingFiles);

            // TODO: Remove magic db name string
            var persistanceManager = new PersistanceManager.SqLitePersistanceManager("db.s3db");

            persistanceManager.SaveSearch(storedSearch);
        }
All Usage Examples Of FileScanner.PersistanceManager.SqLitePersistanceManager::SaveSearch