public void AddJobLog() { var jobLogRepository = new JobLogRepository(); jobLogRepository.Add(DateTime.Now.ToLongTimeString()); var jobLog = jobLogRepository.GetLatest(); }
public UnitOfWork(MongoUrl connectionUrl, IMessageBroker broker, IMapper mapper) { Broker = broker; var client = new MongoClient(connectionUrl); Database = client.GetDatabase(connectionUrl.DatabaseName); ScriptRepository = new ScriptRepository(Database); ConnectionPropertiesRepository = new ConnectionPropertiesRepository(Database); JobRepository = new JobRepository(Database); JobLogRepository = new JobLogRepository(Database, mapper); DashboardRepository = new DashboardRepository(Database); FolderRepository = new FolderRepository(Database); }
public void Reindex(int threadsNum, string[] musicFolders, IMusicDao musicDao) { var jobLogRepository = new JobLogRepository(); var lastIndexRun = jobLogRepository.GetLatest(); int songsInserted = 0; var allSongFiles = musicDao.GetSongFiles(musicFolders[0]); var musicFiles = from musicFile in allSongFiles.AsParallel() where musicFile.IsMusicFile() select musicFile; /* musicFiles = from musicFile in musicFiles.AsParallel() * where musicFile.LOCATION.IndexOf("Xbox Music") == -1 * select musicFile;*/ /* musicFiles = from musicFile in musicFiles.AsParallel() * where musicFile.LOCATION.IndexOf("KEXP") == -1 * select musicFile; */ musicFiles = from musicFile in musicFiles.AsParallel() select musicFile.NormalizeFilename(); var musicFilesModifiedDate = from musicFile in musicFiles.AsParallel() select new { song = musicFile, modificationDate = musicFile.GetModificationDate() }; var modifiedFiles = from musicFile in musicFilesModifiedDate.AsParallel() where (musicFile.modificationDate > lastIndexRun.DateRun) select musicFile.song; modifiedFiles = from musicFile in modifiedFiles.AsParallel() select musicFile.Populate(); var incompleteFiles = from musicFile in modifiedFiles.AsParallel() where !musicFile.TagsComplete() select musicFile; foreach (var file in incompleteFiles) { Debug.WriteLine("Incomplete tags: {0} ", file.LOCATION); } modifiedFiles = from musicFile in modifiedFiles.AsParallel() where musicFile.TagsComplete() select musicFile; var songsWithDbInfo = from song in modifiedFiles.AsParallel() select new { song = song, existsInDb = song.InDb(musicDao) }; var updatedFiles = from song in songsWithDbInfo.AsParallel() where song.existsInDb select song; var newFiles = from song in songsWithDbInfo.AsParallel() where !song.existsInDb select song; var insertedSongs = from song in newFiles select musicDao.InsertSong(song.song); songsInserted = insertedSongs.ToArray().Length; foreach (var song in updatedFiles) { Debug.WriteLine("Updating: {0}", song.song.LOCATION); musicDao.UpdateSong(song.song.TITLE, song.song.ARTIST, song.song.ALBUM, song.song.GENRE, 0, 0, 0, song.song.LOCATION); } jobLogRepository.Add(songsInserted.ToString()); musicDao.UpdateArtists(); }
public void ProcessSongFiles() { int maxSongsToInsert = 10; // var folder = "e:\\Music"; var folder = @"E:\Gdrive\Music"; //var folder = @"d:\Music"; var jobLogRepository = new JobLogRepository(); var lastIndexRun = jobLogRepository.GetLatest(); int songsInserted = 0; // lastIndexRun.DateRun = new DateTime(2014, 2, 20); /* Func<SONG, SONG> songFunc = (SONG song) => * { * Console.WriteLine(song.LOCATION); * return song; * }; */ var musicDao = GetMusicDao(); var allSongFiles = musicDao.GetSongFiles(folder); var musicFiles = from musicFile in allSongFiles where musicFile.IsMusicFile() // where musicFile.IsMp3File() select musicFile; /* var targetFilename = @"Pale Green Ghosts"; * musicFiles = from musicFile in musicFiles * where musicFile.LOCATION.IndexOf(targetFilename) > -1 * select musicFile; */ musicFiles = from musicFile in musicFiles select musicFile.NormalizeFilename(); var musicFilesModifiedDate = from musicFile in musicFiles select new { song = musicFile, modificationDate = musicFile.GetModificationDate() }; // musicFile.CalculateModificationDate(); var modifiedFiles = from musicFile in musicFilesModifiedDate where (musicFile.modificationDate > lastIndexRun.DateRun) select musicFile.song; /* foreach (var musicFile in modifiedFiles) * { * testContextInstance.WriteLine("{0} {1}", musicFile.UPDATED, musicFile.LOCATION); * } */ modifiedFiles = from musicFile in modifiedFiles select musicFile.Populate(); foreach (var modifiedFile in modifiedFiles) { if (modifiedFile.FILESIZE == null || modifiedFile.FILESIZE == 0) { testContextInstance.WriteLine("{0}", "Error"); } testContextInstance.WriteLine("{0}", modifiedFile.FILESIZE); } /* var incompleteFiles = from musicFile in modifiedFiles * where !musicFile.TagsComplete() * select musicFile;*/ modifiedFiles = from musicFile in modifiedFiles where musicFile.TagsComplete() select musicFile; var songsWithDbInfo = from song in modifiedFiles select new { song = song, existsInDb = song.InDb(musicDao) }; var newFiles = from song in songsWithDbInfo where !song.existsInDb select song; /* foreach (var newFile in newFiles) * { * testContextInstance.WriteLine("{0}", newFile.song.LOCATION); * } */ var insertedSongs = from song in newFiles select musicDao.InsertSong(song.song); songsInserted = insertedSongs.ToArray().Count(); /* var updatedFiles = from song in songsWithDbInfo * where song.existsInDb * select musicDao.UpdateSong(song.song.TITLE, song.song.ARTIST, song.song.ALBUM, song.song.GENRE, 0, 0, song.song.FILESIZE, song.song.LOCATION); * * int numUpdatedFiles = updatedFiles.ToArray().Count(); * songsInserted = insertedSongs.ToArray().Count(); */ /* foreach (var song in updatedFiles) * { * testContextInstance.WriteLine("Updated: {0}", song.song.LOCATION); * // musicDao.UpdateSong(song.song.TITLE, song.song.ARTIST, song.song.ALBUM, song.song.GENRE, 0, 0, 0, song.song.LOCATION, song.song.HASH.ToArray()); * } * * foreach (var file in incompleteFiles) * { * testContextInstance.WriteLine("Incomplete tags: {0} ", file.LOCATION); * } */ /* jobLogRepository.Add(songsInserted.ToString()); */ }