private ActiveSyncDeviceFilterArray RemoveDeviceFilterRuleFromExisting(ActiveSyncDeviceFilterArray existingDeviceFilterArray, string deviceFilterName, string deviceFilterRuleName, DeviceAccessCharacteristic deviceFilterCharacteristic) { ActiveSyncDeviceFilterArray activeSyncDeviceFilterArray = new ActiveSyncDeviceFilterArray(); if (existingDeviceFilterArray == null || existingDeviceFilterArray.DeviceFilters == null) { base.WriteVerbose(new LocalizedString("There are no device filters to remove")); return(existingDeviceFilterArray); } activeSyncDeviceFilterArray.DeviceFilters = existingDeviceFilterArray.DeviceFilters; ActiveSyncDeviceFilter activeSyncDeviceFilter = activeSyncDeviceFilterArray.DeviceFilters.FirstOrDefault((ActiveSyncDeviceFilter existingDeviceFilter) => existingDeviceFilter.Name.Equals(deviceFilterName, StringComparison.InvariantCultureIgnoreCase)); if (activeSyncDeviceFilter == null || activeSyncDeviceFilter.Rules == null) { base.WriteError(new ArgumentException(Strings.NoDeviceFilterRuleByName(deviceFilterName)), ErrorCategory.InvalidArgument, null); } List <ActiveSyncDeviceFilterRule> rules = activeSyncDeviceFilter.Rules; int num = rules.FindIndex((ActiveSyncDeviceFilterRule rule) => rule.Characteristic == deviceFilterCharacteristic && rule.Name.Equals(deviceFilterRuleName, StringComparison.InvariantCultureIgnoreCase)); if (num >= 0) { rules.RemoveAt(num); base.WriteVerbose(Strings.RemovedDeviceFilterRuleByNameAndCharacteristic(deviceFilterName, deviceFilterRuleName, deviceFilterCharacteristic.ToString())); } else { base.WriteVerbose(Strings.NoDeviceFilterRuleByNameAndCharacteristic(deviceFilterName, deviceFilterRuleName, deviceFilterCharacteristic.ToString())); } if (activeSyncDeviceFilter.Rules.Count == 0) { base.WriteVerbose(Strings.EmptyDeviceFilterRemoved(deviceFilterName)); activeSyncDeviceFilterArray.DeviceFilters.Remove(activeSyncDeviceFilter); } return(activeSyncDeviceFilterArray); }
private ActiveSyncDeviceFilterArray AddDeviceFilterRuleToExisting(ActiveSyncDeviceFilterArray existingDeviceFilterArray, string deviceFilterName, ActiveSyncDeviceFilterRule newRule, bool applyFilterForAllDevices) { ActiveSyncDeviceFilterArray activeSyncDeviceFilterArray = new ActiveSyncDeviceFilterArray(); if (existingDeviceFilterArray != null) { activeSyncDeviceFilterArray.DeviceFilters = existingDeviceFilterArray.DeviceFilters; } List <ActiveSyncDeviceFilter> list = activeSyncDeviceFilterArray.DeviceFilters; if (list == null) { list = new List <ActiveSyncDeviceFilter>(); activeSyncDeviceFilterArray.DeviceFilters = list; } ActiveSyncDeviceFilter activeSyncDeviceFilter = list.FirstOrDefault((ActiveSyncDeviceFilter existingDeviceFilter) => existingDeviceFilter.Name.Equals(deviceFilterName, StringComparison.InvariantCultureIgnoreCase)); if (activeSyncDeviceFilter == null) { activeSyncDeviceFilter = new ActiveSyncDeviceFilter(deviceFilterName, new List <ActiveSyncDeviceFilterRule>()); list.Add(activeSyncDeviceFilter); } if (applyFilterForAllDevices) { activeSyncDeviceFilter.ApplyForAllDevices = applyFilterForAllDevices; base.WriteVerbose(Strings.AddedDeviceFilterRule(deviceFilterName)); return(activeSyncDeviceFilterArray); } if (activeSyncDeviceFilter.ApplyForAllDevices) { base.WriteError(new InvalidOperationException(Strings.CantAddDeviceFilterRuleSinceApplyForAllDevicesSetToTrue(deviceFilterName)), ErrorCategory.InvalidOperation, null); } List <ActiveSyncDeviceFilterRule> rules = activeSyncDeviceFilter.Rules; if (!rules.Any((ActiveSyncDeviceFilterRule rule) => rule.Characteristic == newRule.Characteristic && rule.Name.Equals(newRule.Name, StringComparison.InvariantCultureIgnoreCase))) { rules.Add(newRule); base.WriteVerbose(Strings.AddedDeviceFilterRule(deviceFilterName)); } else { base.WriteError(new ArgumentException(Strings.DeviceFilterRuleAlreadyExists(deviceFilterName)), ErrorCategory.InvalidArgument, null); } return(activeSyncDeviceFilterArray); }
private ActiveSyncDeviceFilterArray RemoveDeviceFilterFromExisting(ActiveSyncDeviceFilterArray existingDeviceFilterArray, string deviceFilterName) { ActiveSyncDeviceFilterArray activeSyncDeviceFilterArray = new ActiveSyncDeviceFilterArray(); if (existingDeviceFilterArray == null || existingDeviceFilterArray.DeviceFilters == null) { base.WriteVerbose(Strings.NoDeviceFilters); return(existingDeviceFilterArray); } activeSyncDeviceFilterArray.DeviceFilters = existingDeviceFilterArray.DeviceFilters; int num = activeSyncDeviceFilterArray.DeviceFilters.RemoveAll((ActiveSyncDeviceFilter existingDeviceFilter) => existingDeviceFilter.Name.Equals(deviceFilterName, StringComparison.InvariantCultureIgnoreCase)); if (num > 0) { base.WriteVerbose(Strings.RemovedDeviceFilter(deviceFilterName)); } else { base.WriteVerbose(Strings.NoDeviceFilterByName(deviceFilterName)); } return(activeSyncDeviceFilterArray); }