public static bool IsEqualTo <T>(this T metadata, IPresetMetadata compare, string propertyName) where T : IPresetMetadata { switch (propertyName) { case nameof(IPresetMetadata.PresetName): return(metadata.PresetName == compare.PresetName); case nameof(IPresetMetadata.Author): return(metadata.Author == compare.Author); case nameof(IPresetMetadata.Comment): return(metadata.Comment == compare.Comment); case nameof(IPresetMetadata.BankPath): return(metadata.BankPath == compare.BankPath); case nameof(IPresetMetadata.Types): return(metadata.Types.IsEqualTo(compare.Types)); case nameof(IPresetMetadata.Characteristics): return(metadata.Characteristics.IsEqualTo(compare.Characteristics)); } return(false); }
public static bool IsEqualTo <T>(this T metadata, IPresetMetadata compare) where T : IPresetMetadata { if (metadata.PresetName != compare.PresetName) { return(false); } if (metadata.Author != compare.Author) { return(false); } if (metadata.Comment != compare.Comment) { return(false); } if (metadata.BankPath != compare.BankPath) { return(false); } if (!metadata.Characteristics.IsEqualTo(compare.Characteristics, true)) { return(false); } if (!metadata.Types.IsEqualTo(compare.Types, true)) { return(false); } return(true); }
public void ApplyFrom(IPresetMetadata presetMetadata) { if (!UserOverwrittenProperties.Contains(nameof(Author))) { Author = presetMetadata.Author; } if (!UserOverwrittenProperties.Contains(nameof(Comment))) { Comment = presetMetadata.Comment; } if (!UserOverwrittenProperties.Contains(nameof(PresetName))) { PresetName = presetMetadata.PresetName; } if (!UserOverwrittenProperties.Contains(nameof(BankPath))) { BankPath = presetMetadata.BankPath; } if (!UserOverwrittenProperties.Contains(nameof(Types))) { using (Types.SuspendChangeNotifications(SuspensionMode.None)) { Types.Clear(); foreach (var type in presetMetadata.Types) { if (!type.IsIgnored) { Types.Add(new Type { TypeName = type.TypeName, SubTypeName = type.SubTypeName }); } } } } if (!UserOverwrittenProperties.Contains(nameof(Characteristics))) { using (Characteristics.SuspendChangeNotifications(SuspensionMode.None)) { Characteristics.Clear(); foreach (var characteristic in presetMetadata.Characteristics) { if (!characteristic.IsIgnored) { Characteristics.Add(new Characteristic { CharacteristicName = characteristic.CharacteristicName }); } } } } }
public static void UpdateModified <T>(this T metadata, IPresetMetadata compare, PresetMetadataModifiedProperties modifiedProperties) where T : IPresetMetadata { if (metadata.PresetName != compare.PresetName) { modifiedProperties.IsPresetNameModified = true; } else { modifiedProperties.IsPresetNameModified = false; } if (metadata.Author != compare.Author) { modifiedProperties.IsAuthorModified = true; } else { modifiedProperties.IsAuthorModified = false; } if (metadata.Comment != compare.Comment) { modifiedProperties.IsCommentModified = true; } else { modifiedProperties.IsCommentModified = false; } if (metadata.BankPath != compare.BankPath) { modifiedProperties.IsBankPathModified = true; } else { modifiedProperties.IsBankPathModified = false; } if (!metadata.Characteristics.IsEqualTo(compare.Characteristics, true)) { modifiedProperties.IsCharacteristicsModified = true; } else { modifiedProperties.IsCharacteristicsModified = false; } if (!metadata.Types.IsEqualTo(compare.Types, true)) { modifiedProperties.IsTypesModified = true; } else { modifiedProperties.IsTypesModified = false; } }