mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Add db export Archive fields
This commit is contained in:
@@ -83,6 +83,12 @@ namespace SabreTools.Filtering
|
||||
// Analog
|
||||
public FilterItem<string> Analog_Mask { get; private set; } = new FilterItem<string>();
|
||||
|
||||
// Archive
|
||||
public FilterItem<string> Number { get; private set; } = new FilterItem<string>();
|
||||
public FilterItem<string> Clone { get; private set; } = new FilterItem<string>();
|
||||
public FilterItem<string> RegParent { get; private set; } = new FilterItem<string>();
|
||||
public FilterItem<string> Languages { get; private set; } = new FilterItem<string>();
|
||||
|
||||
// BiosSet
|
||||
public FilterItem<string> Description { get; private set; } = new FilterItem<string>();
|
||||
|
||||
@@ -434,6 +440,23 @@ namespace SabreTools.Filtering
|
||||
SetStringFilter(Analog_Mask, value, negate);
|
||||
break;
|
||||
|
||||
// Archive
|
||||
case DatItemField.Number:
|
||||
SetStringFilter(Number, value, negate);
|
||||
break;
|
||||
|
||||
case DatItemField.Clone:
|
||||
SetStringFilter(Clone, value, negate);
|
||||
break;
|
||||
|
||||
case DatItemField.RegParent:
|
||||
SetStringFilter(RegParent, value, negate);
|
||||
break;
|
||||
|
||||
case DatItemField.Languages:
|
||||
SetStringFilter(Languages, value, negate);
|
||||
break;
|
||||
|
||||
// BiosSet
|
||||
case DatItemField.Description:
|
||||
SetStringFilter(Description, value, negate);
|
||||
@@ -859,6 +882,7 @@ namespace SabreTools.Filtering
|
||||
{
|
||||
Adjuster adjuster => PassesFilters(adjuster),
|
||||
Analog analog => PassesFilters(analog),
|
||||
Archive archive => PassesFilters(archive),
|
||||
BiosSet biosSet => PassesFilters(biosSet),
|
||||
Chip chip => PassesFilters(chip),
|
||||
Condition condition => PassesFilters(condition),
|
||||
@@ -934,6 +958,36 @@ namespace SabreTools.Filtering
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check to see if an Archive passes the filters
|
||||
/// </summary>
|
||||
/// <param name="archive">Archive to check</param>
|
||||
/// <returns>True if the item passed the filter, false otherwise</returns>
|
||||
private bool PassesFilters(Archive archive)
|
||||
{
|
||||
// Filter on number
|
||||
if (!PassStringFilter(Number, archive.Number))
|
||||
return false;
|
||||
|
||||
// Filter on clone
|
||||
if (!PassStringFilter(Clone, analog.Clone))
|
||||
return false;
|
||||
|
||||
// Filter on regional parent
|
||||
if (!PassStringFilter(RegParent, analog.RegParent))
|
||||
return false;
|
||||
|
||||
// Filter on region
|
||||
if (!PassStringFilter(Region, analog.Region))
|
||||
return false;
|
||||
|
||||
// Filter on languages
|
||||
if (!PassStringFilter(Languages, analog.Languages))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check to see if a BiosSet passes the filters
|
||||
/// </summary>
|
||||
|
||||
@@ -88,6 +88,7 @@ namespace SabreTools.Filtering
|
||||
|
||||
if (datItem is Adjuster) RemoveFields(datItem as Adjuster);
|
||||
else if (datItem is Analog) RemoveFields(datItem as Analog);
|
||||
else if (datItem is Archive) RemoveFields(datItem as Archive);
|
||||
else if (datItem is BiosSet) RemoveFields(datItem as BiosSet);
|
||||
else if (datItem is Chip) RemoveFields(datItem as Chip);
|
||||
else if (datItem is Condition) RemoveFields(datItem as Condition);
|
||||
@@ -300,6 +301,28 @@ namespace SabreTools.Filtering
|
||||
analog.Mask = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove fields with given values
|
||||
/// </summary>
|
||||
/// <param name="archive">Archive to remove fields from</param>
|
||||
private void RemoveFields(Archive archive)
|
||||
{
|
||||
if (DatItemFields.Contains(DatItemField.Number))
|
||||
archive.Number = null;
|
||||
|
||||
if (DatItemFields.Contains(DatItemField.Clone))
|
||||
archive.Clone = null;
|
||||
|
||||
if (DatItemFields.Contains(DatItemField.RegParent))
|
||||
archive.RegParent = null;
|
||||
|
||||
if (DatItemFields.Contains(DatItemField.Region))
|
||||
archive.Region = null;
|
||||
|
||||
if (DatItemFields.Contains(DatItemField.Languages))
|
||||
archive.Languages = null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove fields with given values
|
||||
/// </summary>
|
||||
|
||||
@@ -36,6 +36,7 @@ namespace SabreTools.Filtering
|
||||
|
||||
if (datItem is Adjuster) ReplaceFields(datItem as Adjuster, repDatItem as Adjuster, datItemFields);
|
||||
else if (datItem is Analog) ReplaceFields(datItem as Analog, repDatItem as Analog, datItemFields);
|
||||
else if (datItem is Archive) ReplaceFields(datItem as Archive, repDatItem as Archive, datItemFields);
|
||||
else if (datItem is BiosSet) ReplaceFields(datItem as BiosSet, repDatItem as BiosSet, datItemFields);
|
||||
else if (datItem is Chip) ReplaceFields(datItem as Chip, repDatItem as Chip, datItemFields);
|
||||
else if (datItem is Condition) ReplaceFields(datItem as Condition, repDatItem as Condition, datItemFields);
|
||||
@@ -254,6 +255,30 @@ namespace SabreTools.Filtering
|
||||
analog.Mask = newItem.Mask;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Replace fields with given values
|
||||
/// </summary>
|
||||
/// <param name="archive">Archive to remove replace fields in</param>
|
||||
/// <param name="newItem">Archive to pull new information from</param>
|
||||
/// <param name="datItemFields">List of fields representing what should be updated</param>
|
||||
private static void ReplaceFields(Archive archive, Archive newItem, List<DatItemField> datItemFields)
|
||||
{
|
||||
if (datItemFields.Contains(DatItemField.Number))
|
||||
archive.Number = newItem.Number;
|
||||
|
||||
if (datItemFields.Contains(DatItemField.Clone))
|
||||
archive.Clone = newItem.Clone;
|
||||
|
||||
if (datItemFields.Contains(DatItemField.RegParent))
|
||||
archive.RegParent = newItem.RegParent;
|
||||
|
||||
if (datItemFields.Contains(DatItemField.Region))
|
||||
archive.Region = newItem.Region;
|
||||
|
||||
if (datItemFields.Contains(DatItemField.Languages))
|
||||
archive.Languages = newItem.Languages;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Replace fields with given values
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user