浏览代码

fixes #1571 - Search containing umlauts fails

Luke Pulverenti 9 年之前
父节点
当前提交
d75cc21d37
共有 1 个文件被更改,包括 15 次插入3 次删除
  1. 15 3
      MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs

+ 15 - 3
MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs

@@ -18,6 +18,7 @@ using System.Linq;
 using System.Runtime.Serialization;
 using System.Runtime.Serialization;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
+using MediaBrowser.Common.Extensions;
 using MediaBrowser.Controller.Channels;
 using MediaBrowser.Controller.Channels;
 using MediaBrowser.Controller.Playlists;
 using MediaBrowser.Controller.Playlists;
 using MediaBrowser.Model.LiveTv;
 using MediaBrowser.Model.LiveTv;
@@ -80,7 +81,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
         private IDbCommand _updateInheritedRatingCommand;
         private IDbCommand _updateInheritedRatingCommand;
         private IDbCommand _updateInheritedTagsCommand;
         private IDbCommand _updateInheritedTagsCommand;
 
 
-        private const int LatestSchemaVersion = 64;
+        private const int LatestSchemaVersion = 65;
 
 
         /// <summary>
         /// <summary>
         /// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
         /// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
@@ -226,6 +227,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
             _connection.AddColumn(Logger, "TypedBaseItems", "CriticRatingSummary", "Text");
             _connection.AddColumn(Logger, "TypedBaseItems", "CriticRatingSummary", "Text");
             _connection.AddColumn(Logger, "TypedBaseItems", "DateModifiedDuringLastRefresh", "DATETIME");
             _connection.AddColumn(Logger, "TypedBaseItems", "DateModifiedDuringLastRefresh", "DATETIME");
             _connection.AddColumn(Logger, "TypedBaseItems", "InheritedTags", "Text");
             _connection.AddColumn(Logger, "TypedBaseItems", "InheritedTags", "Text");
+            _connection.AddColumn(Logger, "TypedBaseItems", "CleanName", "Text");
 
 
             PrepareStatements();
             PrepareStatements();
 
 
@@ -466,7 +468,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
                 "CriticRating",
                 "CriticRating",
                 "CriticRatingSummary",
                 "CriticRatingSummary",
                 "DateModifiedDuringLastRefresh",
                 "DateModifiedDuringLastRefresh",
-                "InheritedTags"
+                "InheritedTags",
+                "CleanName"
             };
             };
             _saveItemCommand = _connection.CreateCommand();
             _saveItemCommand = _connection.CreateCommand();
             _saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values (";
             _saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values (";
@@ -792,6 +795,15 @@ namespace MediaBrowser.Server.Implementations.Persistence
                         _saveItemCommand.GetParameter(index++).Value = null;
                         _saveItemCommand.GetParameter(index++).Value = null;
                     }
                     }
 
 
+                    if (string.IsNullOrWhiteSpace(item.Name))
+                    {
+                        _saveItemCommand.GetParameter(index++).Value = null;
+                    }
+                    else
+                    {
+                        _saveItemCommand.GetParameter(index++).Value = item.Name.RemoveDiacritics();
+                    }
+
                     _saveItemCommand.Transaction = transaction;
                     _saveItemCommand.Transaction = transaction;
 
 
                     _saveItemCommand.ExecuteNonQuery();
                     _saveItemCommand.ExecuteNonQuery();
@@ -1986,7 +1998,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
 
 
             if (!string.IsNullOrWhiteSpace(query.NameContains))
             if (!string.IsNullOrWhiteSpace(query.NameContains))
             {
             {
-                whereClauses.Add("Name like @NameContains");
+                whereClauses.Add("CleanName like @NameContains");
                 cmd.Parameters.Add(cmd, "@NameContains", DbType.String).Value = "%" + query.NameContains + "%";
                 cmd.Parameters.Add(cmd, "@NameContains", DbType.String).Value = "%" + query.NameContains + "%";
             }
             }