public ActionResult <BaseResponse> JobList(JobListRequest request) { var filters = new List <Expression <Func <JobEntity, bool> > >(); if (!string.IsNullOrWhiteSpace(request.Name)) { filters.Add(x => x.Name.Contains(request.Name) || x.Id.Contains(request.Name)); } if (request.Status >= 0) { filters.Add(x => x.Status == request.Status); } var result = _jobStore.QueryJobList(request.PageIndex, request.PageSize, filters, x => x.CreateTime, false, out int total); var pageData = new PageData <JobEntity>() { PageIndex = request.PageIndex, PageSize = request.PageSize, TotalCount = total, List = result }; return(BaseResponse <PageData <JobEntity> > .GetBaseResponse(pageData)); }
/// <summary> /// List print jobs from google cloud /// reference: https://developers.google.com/cloud-print/docs/appInterfaces#jobs /// </summary> /// <param name="request">Parameters for /jobs interface</param> /// <param name="cancellationToken">Cancellation token</param> /// <returns>Response from google cloud</returns> public async Task <JobsResponse <JobListRequest> > ListJobAsync(JobListRequest request, CancellationToken cancellationToken = default(CancellationToken)) { await UpdateTokenAsync(cancellationToken); return(await GoogleCloudPrintBaseUrl .AppendPathSegment("jobs") .WithOAuthBearerToken(_token.AccessToken) .PostRequestAsync(request, cancellationToken) .ReceiveJsonButThrowIfFails <JobsResponse <JobListRequest> >() .ConfigureAwait(false)); }
public void PrintJob(GoogleCloudPrintClient client) { // Create a request to list jobs of a printer var listRequest = new JobListRequest { PrinterId = "d08832da-03e4-a068-885b-46ea9750f3eb", Status = "QUEUED" }; // Submit request var response = client.ListJobAsync(listRequest).Result; }
public async Task <IActionResult> GetJobList([FromBody] JobListRequest request) { #region 筛选条件 List <DbWhere <JobInfoEntity> > dbWheres = new List <DbWhere <JobInfoEntity> >(); if (request.Id.HasValue && request.Id.Value > 0) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.Id, request.Id.Value)); } if (!string.IsNullOrWhiteSpace(request.Name)) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.Name, request.Name, OperateType.Like)); } if (request.JobLevel.HasValue) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.JobLevel, request.JobLevel.Value)); } if (!string.IsNullOrWhiteSpace(request.AssemblyName)) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.AssemblyName, request.AssemblyName, OperateType.Like)); } if (!string.IsNullOrWhiteSpace(request.ClassName)) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.ClassName, request.ClassName, OperateType.Like)); } if (!string.IsNullOrWhiteSpace(request.CronExpression)) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.CronExpression, request.CronExpression, OperateType.Like)); } if (request.LastFireTimeStart.HasValue) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.LastFireTime, request.LastFireTimeStart.Value, OperateType.GreaterEqual)); } if (request.LastFireTimeEnd.HasValue) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.LastFireTime, request.LastFireTimeEnd.Value, OperateType.LessEqual)); } if (request.NextFireTimeStart.HasValue) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.NextFireTime, request.NextFireTimeStart.Value, OperateType.GreaterEqual)); } if (request.NextFireTimeEnd.HasValue) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.NextFireTime, request.NextFireTimeEnd.Value, OperateType.LessEqual)); } if (request.State.HasValue) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.State, request.State.Value)); } if (request.Disabled.HasValue) { dbWheres.Add(new DbWhere <JobInfoEntity>(j => j.Disabled, request.Disabled.Value)); } #endregion #region 排序和分页 string orderByFields = "Id,Name,JobLevel,AssemblyName,CronExpression,LastFireTime,NextFireTime,FireCount,State,Disabled";//表格排序对应的字段 string orderByColumn = orderByFields.Split(',')[request.Order[0].Column]; bool isAsc = request.Order[0].Dir.Equals("asc", StringComparison.OrdinalIgnoreCase); int pageIndex = request.Start / request.Length;//从第0页开始 #endregion #region 获取数据 var(list, totals) = await _jobService.GetJobsAsync(pageIndex, request.Length, dbWheres, null, new DbOrderBy <JobInfoEntity>(orderByColumn, isAsc)); #endregion #region 返回数据 List <object[]> retTable = new List <object[]>(); if (list != null && list.Any()) { foreach (JobInfoEntity item in list) { #region 填充一行 List <object> retRow = new List <object>(); retRow.Add(item.Id); retRow.Add(item.Name); switch (item.JobLevel) { case JobLevel.Business: retRow.Add(item.JobLevel.GetDescription().GetSpanHtml("#00c5dc")); break; case JobLevel.Test: retRow.Add(item.JobLevel.GetDescription().GetSpanHtml("#c4c5d6")); break; case JobLevel.System: retRow.Add(item.JobLevel.GetDescription().GetSpanHtml("#FF0000")); break; default: retRow.Add(item.JobLevel.GetDescription()); break; } retRow.Add($"{item.AssemblyName}<br/>{item.ClassName}"); retRow.Add(item.CronExpression); retRow.Add(item.LastFireTime); //retRow.Add(item.NextFireTime); if (item.NextFireTime.HasValue && item.NextFireTime.Value < DateTime.Now) { retRow.Add(item.NextFireTime.Value.ToString().GetSpanHtml(SpanColor.Warning)); } else { retRow.Add(item.NextFireTime); } retRow.Add(item.FireCount); switch (item.State) { case JobState.Stopped: retRow.Add(item.State.GetDescription().GetSpanHtml(SpanColor.Metal)); break; case JobState.Running: retRow.Add(item.State.GetDescription().GetSpanHtml(SpanColor.Success)); break; case JobState.Starting: retRow.Add(item.State.GetDescription().GetSpanHtml(SpanColor.Primary)); break; case JobState.Stopping: retRow.Add(item.State.GetDescription().GetSpanHtml(SpanColor.Warning)); break; case JobState.Updating: retRow.Add(item.State.GetDescription().GetSpanHtml(SpanColor.Info)); break; case JobState.FireNow: retRow.Add(item.State.GetDescription().GetSpanHtml(SpanColor.Focus)); break; default: retRow.Add(item.State.GetDescription()); break; } if (item.Disabled) { retRow.Add("禁用".GetSpanHtml("#a94442")); } else { retRow.Add("启用".GetSpanHtml("#3c763d")); } StringBuilder btnHtml = new StringBuilder(); btnHtml.AppendFormat("<a class='btn btn-xs btn-primary' href='javascript:;' onclick='TableAjax.ShowLogTable({0},this)'>日志</a>", item.Id); btnHtml.AppendFormat("<a class='btn btn-xs btn-primary' href='javascript:;' onclick='TableAjax.ShowEditModal({0},this)'>编辑</a>", item.Id); if (item.Disabled) { btnHtml.AppendFormat("<a class='btn btn-xs btn-primary' href='javascript:;' onclick='TableAjax.EnableJob({0},this)'>启用</a>", item.Id); } else { btnHtml.AppendFormat("<a class='btn btn-xs btn-primary' href='javascript:;' onclick='TableAjax.DisableJob({0},this)'></i>禁用</a>", item.Id); } if (!item.Disabled) { if (item.State == JobState.Stopped) { btnHtml.AppendFormat("<a class='btn btn-xs btn-primary' href='javascript:;' onclick='TableAjax.StartJob({0},this)'>启动</a>", item.Id); } else if (item.State == JobState.Running) { btnHtml.AppendFormat("<a class='btn btn-xs btn-primary' href='javascript:;' onclick='TableAjax.StopJob({0},this)'>停止</a>", item.Id); btnHtml.AppendFormat("<a class='btn btn-xs btn-primary' href='javascript:;' onclick='TableAjax.FireNowJob({0},this)'>执行一次</a>", item.Id); } } retRow.Add(btnHtml.ToString()); retTable.Add(retRow.ToArray()); #endregion } } return(Json(new TableResult(retTable, request.Draw, totals))); #endregion }