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)); }
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); }
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)); }
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)); }
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])); }
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)); }
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)); }
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)); }