Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }
Example #4
0
        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()));
        }