/// <inheritdoc/> public QueryResult <FileOrganizationResult> GetResults(FileOrganizationResultQuery query) { if (query == null) { throw new ArgumentNullException(nameof(query)); } using (WriteLock.Read()) { using (var connection = CreateConnection(true)) { var commandText = "SELECT ResultId, OriginalPath, TargetPath, FileLength, OrganizationDate, Status, OrganizationType, StatusMessage, ExtractedName, ExtractedYear, ExtractedSeasonNumber, ExtractedEpisodeNumber, ExtractedEndingEpisodeNumber, DuplicatePaths from FileOrganizerResults"; if (query.StartIndex.HasValue && query.StartIndex.Value > 0) { var startIndex = query.StartIndex.Value.ToString(_usCulture); commandText += $" WHERE ResultId NOT IN (SELECT ResultId FROM FileOrganizerResults ORDER BY OrganizationDate DESC LIMIT {startIndex})"; } commandText += " ORDER BY OrganizationDate DESC"; if (query.Limit.HasValue) { commandText += " LIMIT " + query.Limit.Value.ToString(_usCulture); } var list = new List <FileOrganizationResult>(); using (var statement = connection.PrepareStatement(commandText)) { foreach (var row in statement.ExecuteQuery()) { list.Add(GetResult(row)); } } int count; using (var statement = connection.PrepareStatement("select count (ResultId) from FileOrganizerResults")) { count = statement.ExecuteQuery().SelectScalarInt().First(); } return(new QueryResult <FileOrganizationResult>() { Items = list.ToArray(), TotalRecordCount = count }); } } }
/// <inheritdoc/> public QueryResult <SmartMatchResult> GetSmartMatch(FileOrganizationResultQuery query) { if (query == null) { throw new ArgumentNullException(nameof(query)); } using (WriteLock.Read()) { using (var connection = CreateConnection(true)) { var commandText = "SELECT Id, ItemName, DisplayName, OrganizerType, MatchStrings from SmartMatch"; if (query.StartIndex.HasValue && query.StartIndex.Value > 0) { var startIndex = query.StartIndex.Value.ToString(_usCulture); commandText += $" WHERE Id NOT IN (SELECT Id FROM SmartMatch ORDER BY ItemName DESC LIMIT {startIndex})"; } commandText += " ORDER BY ItemName DESC"; if (query.Limit.HasValue) { commandText += " LIMIT " + query.Limit.Value.ToString(_usCulture); } var list = new List <SmartMatchResult>(); using (var statement = connection.PrepareStatement(commandText)) { foreach (var row in statement.ExecuteQuery()) { list.Add(GetResultSmartMatch(row)); } } int count; using (var statement = connection.PrepareStatement("select count (Id) from SmartMatch")) { count = statement.ExecuteQuery().SelectScalarInt().First(); } return(new QueryResult <SmartMatchResult>() { Items = list.ToArray(), TotalRecordCount = count }); } } }
public QueryResult <FileOrganizationResult> GetResults(FileOrganizationResultQuery query) { if (query == null) { throw new ArgumentNullException("query"); } using (var cmd = _connection.CreateCommand()) { cmd.CommandText = "SELECT ResultId, OriginalPath, TargetPath, FileLength, OrganizationDate, Status, OrganizationType, StatusMessage, ExtractedName, ExtractedYear, ExtractedSeasonNumber, ExtractedEpisodeNumber, ExtractedEndingEpisodeNumber, DuplicatePaths from FileOrganizerResults"; if (query.StartIndex.HasValue && query.StartIndex.Value > 0) { cmd.CommandText += string.Format(" WHERE ResultId NOT IN (SELECT ResultId FROM FileOrganizerResults ORDER BY OrganizationDate desc LIMIT {0})", query.StartIndex.Value.ToString(_usCulture)); } cmd.CommandText += " ORDER BY OrganizationDate desc"; if (query.Limit.HasValue) { cmd.CommandText += " LIMIT " + query.Limit.Value.ToString(_usCulture); } cmd.CommandText += "; select count (ResultId) from FileOrganizerResults"; var list = new List <FileOrganizationResult>(); var count = 0; using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess)) { while (reader.Read()) { list.Add(GetResult(reader)); } if (reader.NextResult() && reader.Read()) { count = reader.GetInt32(0); } } return(new QueryResult <FileOrganizationResult>() { Items = list.ToArray(), TotalRecordCount = count }); } }
public QueryResult <SmartMatchInfo> GetSmartMatchInfos(FileOrganizationResultQuery query) { if (query == null) { throw new ArgumentNullException("query"); } var options = GetAutoOrganizeOptions(); var items = options.SmartMatchInfos.Skip(query.StartIndex ?? 0).Take(query.Limit ?? Int32.MaxValue).ToArray(); return(new QueryResult <SmartMatchInfo>() { Items = items, TotalRecordCount = options.SmartMatchInfos.Length }); }
public QueryResult <FileOrganizationResult> GetResults(FileOrganizationResultQuery query) { return(_repo.GetResults(query)); }
public QueryResult <SmartMatchResult> GetSmartMatchInfos(FileOrganizationResultQuery query) { return(_repo.GetSmartMatch(query)); }