Add dictionary reset helper method

This commit is contained in:
Matt Nadareski
2024-03-19 18:40:24 -04:00
parent 3d2c3af88b
commit 7b889e57db
2 changed files with 20 additions and 14 deletions

View File

@@ -34,13 +34,13 @@ namespace SabreTools.DatFiles
/// DatItems and related statistics /// DatItems and related statistics
/// </summary> /// </summary>
[JsonProperty("items"), XmlElement("items")] [JsonProperty("items"), XmlElement("items")]
public ItemDictionary Items { get; set; } = []; public ItemDictionary Items { get; private set; } = [];
/// <summary> /// <summary>
/// DatItems and related statistics /// DatItems and related statistics
/// </summary> /// </summary>
[JsonProperty("items"), XmlElement("items")] [JsonProperty("items"), XmlElement("items")]
public ItemDictionaryDB ItemsDB { get; set; } = new ItemDictionaryDB(); public ItemDictionaryDB ItemsDB { get; private set; } = new ItemDictionaryDB();
#endregion #endregion
@@ -155,6 +155,19 @@ namespace SabreTools.DatFiles
#endregion #endregion
#region
/// <summary>
/// Reset the internal item dictionary
/// </summary>
public void ResetDictionary()
{
Items = [];
ItemsDB = new ItemDictionaryDB();
}
#endregion
#region Filtering #region Filtering
/// <summary> /// <summary>

View File

@@ -342,8 +342,7 @@ namespace SabreTools.DatTools
#endif #endif
{ {
DatFile diffData = DatFile.Create(datHeaders[j]); DatFile diffData = DatFile.Create(datHeaders[j]);
diffData.Items = []; diffData.ResetDictionary();
diffData.ItemsDB = new ItemDictionaryDB();
FillWithSourceIndex(datFile, diffData, j); FillWithSourceIndex(datFile, diffData, j);
outDatsArray[j] = diffData; outDatsArray[j] = diffData;
#if NET40_OR_GREATER || NETCOREAPP #if NET40_OR_GREATER || NETCOREAPP
@@ -393,8 +392,7 @@ namespace SabreTools.DatTools
dupeData.Header.SetFieldValue<string?>(DatHeader.FileNameKey, dupeData.Header.GetStringFieldValue(DatHeader.FileNameKey) + post); dupeData.Header.SetFieldValue<string?>(DatHeader.FileNameKey, dupeData.Header.GetStringFieldValue(DatHeader.FileNameKey) + post);
dupeData.Header.SetFieldValue<string?>(Models.Metadata.Header.NameKey, dupeData.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + post); dupeData.Header.SetFieldValue<string?>(Models.Metadata.Header.NameKey, dupeData.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + post);
dupeData.Header.SetFieldValue<string?>(Models.Metadata.Header.DescriptionKey, dupeData.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + post); dupeData.Header.SetFieldValue<string?>(Models.Metadata.Header.DescriptionKey, dupeData.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + post);
dupeData.Items = []; dupeData.ResetDictionary();
dupeData.ItemsDB = new ItemDictionaryDB();
watch.Stop(); watch.Stop();
@@ -494,8 +492,7 @@ namespace SabreTools.DatTools
diffData.Header.SetFieldValue<string?>(DatHeader.FileNameKey, diffData.Header.GetStringFieldValue(DatHeader.FileNameKey) + innerpost); diffData.Header.SetFieldValue<string?>(DatHeader.FileNameKey, diffData.Header.GetStringFieldValue(DatHeader.FileNameKey) + innerpost);
diffData.Header.SetFieldValue<string?>(Models.Metadata.Header.NameKey, diffData.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + innerpost); diffData.Header.SetFieldValue<string?>(Models.Metadata.Header.NameKey, diffData.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + innerpost);
diffData.Header.SetFieldValue<string?>(Models.Metadata.Header.DescriptionKey, diffData.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + innerpost); diffData.Header.SetFieldValue<string?>(Models.Metadata.Header.DescriptionKey, diffData.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + innerpost);
diffData.Items = []; diffData.ResetDictionary();
diffData.ItemsDB = new ItemDictionaryDB();
outDatsArray[j] = diffData; outDatsArray[j] = diffData;
#if NET40_OR_GREATER || NETCOREAPP #if NET40_OR_GREATER || NETCOREAPP
}); });
@@ -588,8 +585,7 @@ namespace SabreTools.DatTools
outerDiffData.Header.SetFieldValue<string?>(DatHeader.FileNameKey, outerDiffData.Header.GetStringFieldValue(DatHeader.FileNameKey) + post); outerDiffData.Header.SetFieldValue<string?>(DatHeader.FileNameKey, outerDiffData.Header.GetStringFieldValue(DatHeader.FileNameKey) + post);
outerDiffData.Header.SetFieldValue<string?>(Models.Metadata.Header.NameKey, outerDiffData.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + post); outerDiffData.Header.SetFieldValue<string?>(Models.Metadata.Header.NameKey, outerDiffData.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + post);
outerDiffData.Header.SetFieldValue<string?>(Models.Metadata.Header.DescriptionKey, outerDiffData.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + post); outerDiffData.Header.SetFieldValue<string?>(Models.Metadata.Header.DescriptionKey, outerDiffData.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + post);
outerDiffData.Items = []; outerDiffData.ResetDictionary();
outerDiffData.ItemsDB = new ItemDictionaryDB();
watch.Stop(); watch.Stop();
@@ -718,10 +714,7 @@ namespace SabreTools.DatTools
// Now remove the file dictionary from the source DAT // Now remove the file dictionary from the source DAT
if (delete) if (delete)
{ addFrom.ResetDictionary();
addFrom.Items = [];
addFrom.ItemsDB = new ItemDictionaryDB();
}
} }
/// <summary> /// <summary>