private bool ModFilter(object item) { TroveModViewModel mod = item as TroveModViewModel; var ic = StringComparison.OrdinalIgnoreCase; bool search = true, types = true, subtypes = true, format = true; try { search = string.IsNullOrEmpty(SearchFilter) || mod.DataObject.Name?.IndexOf(SearchFilter, ic) >= 0 || mod.DataObject.Author?.IndexOf(SearchFilter, ic) >= 0 || mod.DataObject.Type?.IndexOf(SearchFilter, ic) >= 0 || mod.DataObject.SubType?.IndexOf(SearchFilter, ic) >= 0; types = string.IsNullOrEmpty(TypeFilter) || TypeFilter.Equals(Strings.GetMoreModsViewModel_AllTypes, ic) || mod.DataObject.Type == null || mod.DataObject.Type.Equals(TypeFilter, ic); subtypes = string.IsNullOrEmpty(SubTypeFilter) || SubTypeFilter.Equals(Strings.GetMoreModsViewModel_AllSubTypes, ic) || mod.DataObject.SubType == null || mod.DataObject.SubType.Equals(SubTypeFilter, ic); format = string.IsNullOrEmpty(FormatFilter) || FormatFilter.Equals(Strings.GetMoreModsViewModel_AllFormats, ic) || mod.DataObject.Downloads.Any(d => d.Format.Equals(FormatFilter, ic)); } catch (Exception ex) { log.Error("Mod filter error", ex); if (log.IsDebugEnabled) { log.DebugFormat("Mod Name: [{0}], Author: [{1}], Type: [{2}], SubType: [{3}], SearchFilter: [{4}], TypeFilter: [{5}], SubTypeFilter: [{6}], FormatFilter: [{7}]", mod?.DataObject?.Name, mod?.DataObject?.Author, mod?.DataObject?.Type, mod?.DataObject?.SubType, SearchFilter, TypeFilter, SubTypeFilter, FormatFilter); } } return(search && types && subtypes && format); }
public override bool Equals(object obj) { if (obj == null) { return(false); } if (obj == this) { return(true); } return(obj is LoyaltyEventFilter other && ((LoyaltyAccountFilter == null && other.LoyaltyAccountFilter == null) || (LoyaltyAccountFilter?.Equals(other.LoyaltyAccountFilter) == true)) && ((TypeFilter == null && other.TypeFilter == null) || (TypeFilter?.Equals(other.TypeFilter) == true)) && ((DateTimeFilter == null && other.DateTimeFilter == null) || (DateTimeFilter?.Equals(other.DateTimeFilter) == true)) && ((LocationFilter == null && other.LocationFilter == null) || (LocationFilter?.Equals(other.LocationFilter) == true)) && ((OrderFilter == null && other.OrderFilter == null) || (OrderFilter?.Equals(other.OrderFilter) == true))); }