diff --git a/MediaBrowser.Model/FileOrganization/AutoOrganizeOptions.cs b/MediaBrowser.Model/FileOrganization/AutoOrganizeOptions.cs
index 071897b51b..830d55bf54 100644
--- a/MediaBrowser.Model/FileOrganization/AutoOrganizeOptions.cs
+++ b/MediaBrowser.Model/FileOrganization/AutoOrganizeOptions.cs
@@ -1,5 +1,4 @@
-using System.Collections.Generic;
namespace MediaBrowser.Model.FileOrganization
{
public class AutoOrganizeOptions
@@ -14,12 +13,12 @@ namespace MediaBrowser.Model.FileOrganization
/// Gets or sets a list of smart match entries.
///
/// The smart match entries.
- public List SmartMatchInfos { get; set; }
+ public SmartMatchInfo[] SmartMatchInfos { get; set; }
public AutoOrganizeOptions()
{
TvOptions = new TvFileOrganizationOptions();
- SmartMatchInfos = new List();
+ SmartMatchInfos = new SmartMatchInfo[]{};
}
}
}
diff --git a/MediaBrowser.Model/FileOrganization/SmartMatchInfo.cs b/MediaBrowser.Model/FileOrganization/SmartMatchInfo.cs
index 808c0b006e..a6bc66e499 100644
--- a/MediaBrowser.Model/FileOrganization/SmartMatchInfo.cs
+++ b/MediaBrowser.Model/FileOrganization/SmartMatchInfo.cs
@@ -1,19 +1,16 @@
-using System;
-using System.Collections.Generic;
-
namespace MediaBrowser.Model.FileOrganization
{
public class SmartMatchInfo
{
- public Guid Id { get; set; }
+ public string Id { get; set; }
public string Name { get; set; }
public FileOrganizerType OrganizerType { get; set; }
- public List MatchStrings { get; set; }
+ public string[] MatchStrings { get; set; }
public SmartMatchInfo()
{
- MatchStrings = new List();
+ MatchStrings = new string[] { };
}
}
}
diff --git a/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs b/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs
index a952b60d58..dcce91c313 100644
--- a/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs
+++ b/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs
@@ -301,20 +301,25 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
private void SaveSmartMatchString(string matchString, Series series, AutoOrganizeOptions options)
{
- SmartMatchInfo info = options.SmartMatchInfos.Find(i => i.Id == series.Id);
+ var seriesIdString = series.Id.ToString("N");
+ SmartMatchInfo info = options.SmartMatchInfos.FirstOrDefault(i => string.Equals(i.Id, seriesIdString));
if (info == null)
{
info = new SmartMatchInfo();
- info.Id = series.Id;
+ info.Id = series.Id.ToString("N");
info.OrganizerType = FileOrganizerType.Episode;
info.Name = series.Name;
- options.SmartMatchInfos.Add(info);
+ var list = options.SmartMatchInfos.ToList();
+ list.Add(info);
+ options.SmartMatchInfos = list.ToArray();
}
if (!info.MatchStrings.Contains(matchString, StringComparer.OrdinalIgnoreCase))
{
- info.MatchStrings.Add(matchString);
+ var list = info.MatchStrings.ToList();
+ list.Add(matchString);
+ info.MatchStrings = list.ToArray();
_config.SaveAutoOrganizeOptions(options);
}
}
@@ -487,14 +492,14 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
if (series == null)
{
- SmartMatchInfo info = options.SmartMatchInfos.Where(e => e.MatchStrings.Contains(seriesName, StringComparer.OrdinalIgnoreCase)).FirstOrDefault();
+ SmartMatchInfo info = options.SmartMatchInfos.FirstOrDefault(e => e.MatchStrings.Contains(seriesName, StringComparer.OrdinalIgnoreCase));
if (info != null)
{
- series = _libraryManager.RootFolder.GetRecursiveChildren(i => i is Series)
+ series = _libraryManager.RootFolder
+ .GetRecursiveChildren(i => i is Series)
.Cast()
- .Where(i => i.Id == info.Id)
- .FirstOrDefault();
+ .FirstOrDefault(i => string.Equals(i.Id.ToString("N"), info.Id));
}
}
diff --git a/MediaBrowser.Server.Implementations/FileOrganization/FileOrganizationService.cs b/MediaBrowser.Server.Implementations/FileOrganization/FileOrganizationService.cs
index 3dd6a9be09..ce388bd8e1 100644
--- a/MediaBrowser.Server.Implementations/FileOrganization/FileOrganizationService.cs
+++ b/MediaBrowser.Server.Implementations/FileOrganization/FileOrganizationService.cs
@@ -140,12 +140,12 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
var options = GetAutoOrganizeptions();
- var items = options.SmartMatchInfos.Skip(query.StartIndex ?? 0).Take(query.Limit ?? Int32.MaxValue);
+ var items = options.SmartMatchInfos.Skip(query.StartIndex ?? 0).Take(query.Limit ?? Int32.MaxValue).ToArray();
return new QueryResult()
{
- Items = items.ToArray(),
- TotalRecordCount = items.Count()
+ Items = items,
+ TotalRecordCount = options.SmartMatchInfos.Length
};
}
@@ -165,14 +165,19 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
var options = GetAutoOrganizeptions();
- SmartMatchInfo info = options.SmartMatchInfos.Find(i => i.Id == Id);
+ SmartMatchInfo info = options.SmartMatchInfos.FirstOrDefault(i => string.Equals(i.Id, IdString));
if (info != null && info.MatchStrings.Contains(matchString))
{
- info.MatchStrings.Remove(matchString);
- if (info.MatchStrings.Count == 0)
+ var list = info.MatchStrings.ToList();
+ list.Remove(matchString);
+ info.MatchStrings = list.ToArray();
+
+ if (info.MatchStrings.Length == 0)
{
- options.SmartMatchInfos.Remove(info);
+ var infos = options.SmartMatchInfos.ToList();
+ infos.Remove(info);
+ options.SmartMatchInfos = infos.ToArray();
}
_config.SaveAutoOrganizeOptions(options);