Esempio n. 1
0
        public JobDefinition[] FindJobDefinitions(Guid?roleId = null, Guid?jobId = null, string jobName = null)
        {
            QueryFilter filter = null;

            if (roleId != null || jobId != null || jobName != null)
            {
                List <QueryFilter> list = new List <QueryFilter>(3);
                if (roleId != null)
                {
                    list.Add(new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.RoleIdQueryProperty, roleId));
                }
                if (jobId != null)
                {
                    list.Add(new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.JobIdQueryProperty, jobId));
                }
                if (jobName != null)
                {
                    list.Add(new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.JobNameQueryProperty, jobName));
                }
                if (list.Count == 1)
                {
                    filter = list[0];
                }
                else
                {
                    filter = new OrFilter(list.ToArray());
                }
            }
            IConfigurable[] array = this.dataProvider.Find <JobDefinition>(filter, null, false, null);
            if (array == null)
            {
                return(null);
            }
            return(BackgroundJobBackendSession.IConfigurableArrayTo <JobDefinition>(array));
        }
Esempio n. 2
0
 private static T[] IConfigurableArrayTo <T>(IConfigurable[] configurables) where T : IConfigurable
 {
     T[] array = new T[configurables.Length];
     for (int i = 0; i < configurables.Length; i++)
     {
         array[i] = BackgroundJobBackendSession.IConfigurableToT <T>(configurables[i]);
     }
     return(array);
 }
Esempio n. 3
0
        public DataCenterDefinition[] FindDataCenterIdByName(string dcName)
        {
            QueryFilter filter = null;

            if (dcName != null)
            {
                filter = new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.NameQueryProperty, dcName);
            }
            IConfigurable[] array = this.dataProvider.Find <DataCenterDefinition>(filter, null, false, null);
            if (array == null)
            {
                return(null);
            }
            return(BackgroundJobBackendSession.IConfigurableArrayTo <DataCenterDefinition>(array));
        }
Esempio n. 4
0
        public BackgroundJobMgrInstance[] FindBackgroundJobMgrInstances(Guid roleId, DateTime lastCheckedDatetime, bool active)
        {
            OrFilter filter = new OrFilter(new QueryFilter[]
            {
                new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.RoleIdQueryProperty, roleId),
                new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.LastCheckedDatetimeQueryProperty, lastCheckedDatetime),
                new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.ActiveQueryProperty, active)
            });

            IConfigurable[] array = this.dataProvider.Find <BackgroundJobMgrInstance>(filter, null, false, null);
            if (array == null)
            {
                return(null);
            }
            return(BackgroundJobBackendSession.IConfigurableArrayTo <BackgroundJobMgrInstance>(array));
        }
Esempio n. 5
0
        public BackgroundJobMgrInstance FindSchedulerInstance(Guid roleId, DateTime heartbeatThreshold, Regions region, long?datacenter = null)
        {
            QueryFilter filter = QueryFilter.AndTogether(new QueryFilter[]
            {
                new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.RoleIdQueryProperty, roleId),
                new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.heartbeatDatetimeThresholdQueryProperty, heartbeatThreshold),
                new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.RegionSelectionSetQueryProperty, region),
                new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.DataCenterIdQueryProperty, datacenter)
            });

            IConfigurable[] array = this.dataProvider.Find <BackgroundJobMgrInstance>(filter, null, false, null);
            if (array == null || array.Length == 0)
            {
                return(null);
            }
            return(BackgroundJobBackendSession.IConfigurableToT <BackgroundJobMgrInstance>(array[0]));
        }
Esempio n. 6
0
        public RoleDefinition[] FindRoleByNameVersion(string roleName, string roleVersion)
        {
            QueryFilter filter = null;
            int         num    = 0;

            if (roleName != null)
            {
                num++;
            }
            if (roleVersion != null)
            {
                num++;
            }
            if (num > 0)
            {
                QueryFilter[] array = new QueryFilter[num];
                int           num2  = 0;
                if (roleName != null)
                {
                    array[num2++] = new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.RoleNameQueryProperty, roleName);
                }
                if (roleVersion != null)
                {
                    array[num2++] = new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.RoleVersionQueryProperty, roleVersion);
                }
                if (num > 1)
                {
                    filter = new OrFilter(array);
                }
                else
                {
                    filter = array[0];
                }
            }
            IConfigurable[] array2 = this.dataProvider.Find <RoleDefinition>(filter, null, false, null);
            if (array2 == null)
            {
                return(null);
            }
            return(BackgroundJobBackendSession.IConfigurableArrayTo <RoleDefinition>(array2));
        }
Esempio n. 7
0
 public BackgroundJobMgrInstance[] FindBackgroundJobMgrInstances(Guid roleId, string machineName)
 {
     QueryFilter[] array = new QueryFilter[2];
     array[0] = new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.RoleIdQueryProperty, roleId);
     IConfigurable[] array2;
     if (machineName != null)
     {
         array[1] = new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.MachineNameQueryProperty, machineName);
         OrFilter filter = new OrFilter(array);
         array2 = this.dataProvider.Find <BackgroundJobMgrInstance>(filter, null, false, null);
     }
     else
     {
         array2 = this.dataProvider.Find <BackgroundJobMgrInstance>(array[0], null, false, null);
     }
     if (array2 == null)
     {
         return(null);
     }
     return(BackgroundJobBackendSession.IConfigurableArrayTo <BackgroundJobMgrInstance>(array2));
 }
Esempio n. 8
0
        public ScheduleItem[] FindScheduleItems(Guid roleId, Guid?scheduleId = null, bool?active = null, int?regionSelectionSet = null, IEnumerable <long> dataCenterIdCollection = null, Guid?jobId = null)
        {
            int num = 2;

            if (scheduleId != null)
            {
                num++;
            }
            if (active != null)
            {
                num++;
            }
            if (regionSelectionSet != null)
            {
                num++;
            }
            if (jobId != null)
            {
                num++;
            }
            QueryFilter[] array = new QueryFilter[num];
            num          = 0;
            array[num++] = new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.RoleIdQueryProperty, roleId);
            if (scheduleId != null)
            {
                array[num++] = new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.ScheduleIdQueryProperty, scheduleId);
            }
            if (active != null)
            {
                array[num++] = new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.ActiveQueryProperty, active);
            }
            if (regionSelectionSet != null)
            {
                array[num++] = new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.RegionSelectionSetQueryProperty, regionSelectionSet);
            }
            BatchPropertyTable batchPropertyTable = new BatchPropertyTable();

            if (dataCenterIdCollection != null)
            {
                foreach (long num2 in dataCenterIdCollection)
                {
                    batchPropertyTable.AddPropertyValue(Guid.NewGuid(), BackgroundJobBackendSession.DCSelectionSetProperty2, num2);
                }
            }
            array[num++] = new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.TvpDCIdList, batchPropertyTable);
            if (jobId != null)
            {
                array[num++] = new ComparisonFilter(ComparisonOperator.Equal, BackgroundJobBackendSession.JobIdQueryProperty, jobId);
            }
            QueryFilter filter;

            if (num > 1)
            {
                filter = new OrFilter(array);
            }
            else
            {
                filter = array[0];
            }
            IConfigurable[] array2 = this.dataProvider.Find <ScheduleItem>(filter, null, false, null);
            if (array2 == null)
            {
                return(null);
            }
            return(BackgroundJobBackendSession.IConfigurableArrayTo <ScheduleItem>(array2));
        }