Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 // Token: 0x060005B9 RID: 1465 RVA: 0x00021F98 File Offset: 0x00020198
 public static bool IsDeviceInFilter(string filterName)
 {
     if (Command.CurrentCommand != null && Command.CurrentCommand.Context != null)
     {
         IOrganizationSettingsData organizationSettingsData = ADNotificationManager.GetOrganizationSettingsData(Command.CurrentCommand.Context.User);
         if (organizationSettingsData == null || organizationSettingsData.DeviceFiltering == null || organizationSettingsData.DeviceFiltering.Count == 0)
         {
             AirSyncDiagnostics.TraceDebug(ExTraceGlobals.RequestsTracer, null, "There are no device filters or failed to get device filters");
             return(false);
         }
         ActiveSyncDeviceFilter filter = organizationSettingsData.DeviceFiltering.GetFilter(filterName);
         if (filter == null)
         {
             AirSyncDiagnostics.TraceDebug <string>(ExTraceGlobals.RequestsTracer, null, "There are no device filters by given name:{0}", filterName);
             return(false);
         }
         if (filter.ApplyForAllDevices)
         {
             AirSyncDiagnostics.TraceDebug <string>(ExTraceGlobals.RequestsTracer, null, "Device filter name:{0} has been set to apply for all devices", filterName);
             return(true);
         }
         if (filter.Rules == null)
         {
             AirSyncDiagnostics.TraceDebug <string>(ExTraceGlobals.RequestsTracer, null, "There are no rules for the given device filters name:{0}", filterName);
             return(false);
         }
         string text;
         string text2;
         string text3;
         string text4;
         string text5;
         DeviceFilterManager.GetActualValues(out text, out text2, out text3, out text4, out text5);
         foreach (ActiveSyncDeviceFilterRule activeSyncDeviceFilterRule in filter.Rules)
         {
             if ((activeSyncDeviceFilterRule.Characteristic == DeviceAccessCharacteristic.DeviceType && DeviceFilterManager.IsRuleValueMatch(activeSyncDeviceFilterRule, text)) || (activeSyncDeviceFilterRule.Characteristic == DeviceAccessCharacteristic.DeviceModel && DeviceFilterManager.IsRuleValueMatch(activeSyncDeviceFilterRule, text2)) || (activeSyncDeviceFilterRule.Characteristic == DeviceAccessCharacteristic.DeviceOS && DeviceFilterManager.IsRuleValueMatch(activeSyncDeviceFilterRule, text3)) || (activeSyncDeviceFilterRule.Characteristic == DeviceAccessCharacteristic.UserAgent && DeviceFilterManager.IsRuleValueMatch(activeSyncDeviceFilterRule, text4)) || (activeSyncDeviceFilterRule.Characteristic == DeviceAccessCharacteristic.XMSWLHeader && DeviceFilterManager.IsRuleValueMatch(activeSyncDeviceFilterRule, text5)))
             {
                 AirSyncDiagnostics.TraceDebug(ExTraceGlobals.RequestsTracer, null, "The current request with DeviceType:{0} DeviceModel:{1} DeviceOS:{2} UserAgent:{3} XMSWLHeader:{4} has a matching filter:{5}", new object[]
                 {
                     text,
                     text2,
                     text3,
                     text4,
                     text5,
                     filterName
                 });
                 return(true);
             }
         }
         return(false);
     }
     return(false);
 }
Ejemplo n.º 3
0
        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);
        }