public static Task <string[]> GetQueueNameList() { var manager = new SQLiteJobQueueManager(new SQLiteJobQueueDataConnectionFactory(TempDevInfo.ConnString), TempDevInfo.TableConfigurations["console"], new NullOnMissingTypeJobTypeResolver()); var result = (new string[] { null }).Concat(manager.GetJobCriteriaValues(q => q.QueueName).ToList()).ToArray(); return(Task.FromResult(result)); }
public static Task <string[]> GetMethods(string queueName) { var manager = new SQLiteJobQueueManager(new SQLiteJobQueueDataConnectionFactory(TempDevInfo.ConnString), TempDevInfo.TableConfigurations["console"], new NullOnMissingTypeJobTypeResolver()); Expression <Func <SqlCommonDbOddJobMetaData, bool> > expr = null; var results = new string[] { null }; if (!string.IsNullOrWhiteSpace(queueName)) { expr = ExpressionHelpers.CombineBinaryExpression(expr, (a) => a.QueueName.ToLower().Contains(queueName.ToLower()), false); results = results.Concat(manager.GetJobCriteriaByCriteria(expr, q => q.MethodName)).ToArray(); } return(Task.FromResult(results)); }
public static Task <bool> UpdateJob(JobUpdateViewModel input) { var manager = new SQLiteJobQueueManager(new SQLiteJobQueueDataConnectionFactory(TempDevInfo.ConnString), TempDevInfo.TableConfigurations["console"], new NullOnMissingTypeJobTypeResolver()); Dictionary <Expression <Func <SqlCommonDbOddJobMetaData, object> >, object> updateSet = new Dictionary <Expression <Func <SqlCommonDbOddJobMetaData, object> >, object>(); Dictionary <int, Dictionary <Expression <Func <SqlCommonOddJobParamMetaData, object> >, object> > updateParamSet = new Dictionary <int, Dictionary <Expression <Func <SqlCommonOddJobParamMetaData, object> >, object> >(); if (input.UpdateData.UpdateMethodName && !string.IsNullOrWhiteSpace(input.UpdateData.NewQueueName)) { updateSet.Add((a => a.MethodName), input.UpdateData.NewMethodName); } if (input.UpdateData.UpdateQueueName && !string.IsNullOrWhiteSpace(input.UpdateData.NewQueueName)) { updateSet.Add(a => a.QueueName, input.UpdateData.NewQueueName); } if (input.UpdateData.UpdateRetryCount) { updateSet.Add(a => a.MaxRetries, input.UpdateData.NewMaxRetryCount); } if (input.UpdateData.UpdateStatus && !string.IsNullOrWhiteSpace(input.UpdateData.NewStatus)) { updateSet.Add(a => a.Status, input.UpdateData.NewStatus); } string statusIfRequired = input.UpdateData.RequireOldStatus ? input.UpdateData.OldStatus : ""; updateParamSet = input.UpdateData.ParamUpdates.Select(q => BuildParamUpdateSet(q)).ToDictionary(q => q.Key, q => q.Value); var result = manager.UpdateJobMetadataAndParameters(new JobUpdateCommand() { JobGuid = input.UpdateData.JobGuid, OldStatusIfRequired = statusIfRequired, SetJobParameters = updateParamSet, SetJobMetadata = updateSet }); return(Task.FromResult(result)); }
public static Task <JobMetadataResult[]> SearchCriteria(JobSearchCriteria criteria) { var manager = new SQLiteJobQueueManager(new SQLiteJobQueueDataConnectionFactory(TempDevInfo.ConnString), TempDevInfo.TableConfigurations["console"], new NullOnMissingTypeJobTypeResolver()); Expression <Func <SqlCommonDbOddJobMetaData, bool> > expr = null; if (!string.IsNullOrWhiteSpace(criteria.QueueName)) { expr = ExpressionHelpers.CombineBinaryExpression(expr, (a) => a.QueueName.ToLower().Contains(criteria.QueueName.ToLower()), false); } if (!string.IsNullOrWhiteSpace(criteria.MethodName) && criteria.UseMethod) { expr = ExpressionHelpers.CombineBinaryExpression(expr, (a) => a.MethodName.ToLower().Contains(criteria.MethodName.ToLower()), false); } if (!string.IsNullOrWhiteSpace(criteria.Status) && criteria.UseStatus) { expr = ExpressionHelpers.CombineBinaryExpression(expr, (a) => a.Status.ToLower().Contains(criteria.Status.ToLower()), false); } /* if (statusCriteria != null && statusCriteria.Any()) * { * expr = ExpressionHelpers.CombineBinaryExpression(expr, (a) => a.Status.LikeAnyLower(statusCriteria), * requireAll); * * } * * if (jobNameCriteria != null && jobNameCriteria.Any()) * { * expr = ExpressionHelpers.CombineBinaryExpression(expr, * (a) => a.MethodName.LikeAnyUpper(jobNameCriteria), requireAll); * } * * if (jobGuids != null && jobGuids.Any()) * { * expr = ExpressionHelpers.CombineBinaryExpression(expr, (a) => a.JobGuid.In(jobGuids), requireAll); * } * * expr = ExpressionHelpers.CombineBinaryExpression(expr, (a) => ( * (createdNoLaterThan == null || a.CreatedDate <= createdNoLaterThan) * && * (createdNoEarlierThan == null || a.CreatedDate >= createdNoEarlierThan) * ), requireAll); * expr = ExpressionHelpers.CombineBinaryExpression(expr, (a) => ( * (lastExecutedNoLaterThan == null || a.LastAttempt <= lastExecutedNoLaterThan) * && * (lastExecutedNoEarlierThan == null || a.LastAttempt >= lastExecutedNoEarlierThan) * ), requireAll); */ var result = expr == null ? new JobMetadataResult[] {} : manager.GetSerializableJobsByCriteria(expr).Select(q => new JobMetadataResult() { ExecutionTime = q.ExecutionTime.ToString(), JobArgs = q.JobArgs.Select(r => new JobParameterDto() { Ordinal = r.Ordinal, Name = r.Name, Type = r.TypeName, Value = r.Value }).ToArray(), JobId = q.JobId, MethodGenericTypes = q.MethodGenericTypes.ToArray(), MethodName = q.MethodName, Queue = q.QueueName, RetryParameters = new JobRetryParameters() { LastAttempt = q.RetryParameters.LastAttempt, RetryCount = q.RetryParameters.RetryCount, MaxRetries = q.RetryParameters.MaxRetries, MinRetryWait = q.RetryParameters.MinRetryWait }, Status = q.Status, TypeExecutedOn = q.TypeExecutedOn }); return(Task.FromResult(result.ToArray())); }