public override void Execute() { WriteLiteral("\r\n"); #line 8 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" var monitor = Storage.GetMonitoringApi(); var job = monitor.JobDetails(JobId.ToString()); string title = null; if (job != null) { title = job.Job != null?Html.JobName(job.Job) : null; } title = title ?? "Job"; Layout = new LayoutPage(title); #line default #line hidden WriteLiteral("\r\n<div class=\"row\">\r\n <div class=\"col-md-3\">\r\n "); #line 25 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(Html.JobsSidebar()); #line default #line hidden WriteLiteral("\r\n </div>\r\n <div class=\"col-md-9\">\r\n <h1 class=\"page-header\">"); #line 28 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(title); #line default #line hidden WriteLiteral("</h1>\r\n\r\n"); #line 30 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" if (job == null) { #line default #line hidden WriteLiteral(" "); WriteLiteral(" The job with id \'"); #line 32 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(JobId); #line default #line hidden WriteLiteral("\' has expired or could not be found on the server.\r\n"); #line 33 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } else { var currentState = job.History.Count > 0 ? job.History[0] : null; if (currentState != null && currentState.StateName == ProcessingState.StateName) { var server = monitor.Servers().FirstOrDefault(x => x.Name == currentState.Data["ServerId"]); if (server == null) { #line default #line hidden WriteLiteral(" <div class=\"alert alert-danger\">\r\n <st" + "rong>The job was aborted</strong> – it is processed by server\r\n " + " <code>"); #line 44 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(currentState.Data["ServerId"]); #line default #line hidden WriteLiteral("</code> which is not in the \r\n <a href=\""); #line 45 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(Url.To("/servers")); #line default #line hidden WriteLiteral("\">active servers</a> list for now.\r\n It will be retried au" + "tomatically after invisibility timeout, but you can\r\n als" + "o re-queue or delete it manually.\r\n </div>\r\n"); #line 49 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } else if (server.Heartbeat.HasValue && server.Heartbeat < DateTime.UtcNow.AddMinutes(-1)) { #line default #line hidden WriteLiteral(" <div class=\"alert alert-warning\">\r\n <s" + "trong>Looks like the job was aborted</strong> – it is processed by server\r\n " + " <code>"); #line 54 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(server.Name); #line default #line hidden WriteLiteral("</code>, which reported its heartbeat more than 1 minute ago.\r\n " + " It will be retried automatically after invisibility timeout, but you can\r\n" + " also re-queue or delete it manually.\r\n " + " </div>\r\n"); #line 58 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } } if (job.ExpireAt.HasValue) { #line default #line hidden WriteLiteral(" <div class=\"alert alert-info\">\r\n <strong>The j" + "ob is finished</strong>.\r\n It will be removed automatically <" + "em><abbr data-moment=\""); #line 65 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(JobHelper.ToTimestamp(job.ExpireAt.Value)); #line default #line hidden WriteLiteral("\">"); #line 65 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(job.ExpireAt); #line default #line hidden WriteLiteral("</abbr></em>.\r\n </div>\r\n"); #line 67 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" <div class=\"job-snippet\">\r\n <div class=\"job-snippet-he" + "ader\">\r\n <span class=\"job-snippet-tab\">\r\n " + " Job ID: <span class=\"job-snippet-id\">"); #line 72 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(Html.JobId(JobId.ToString(), false)); #line default #line hidden WriteLiteral("</span>\r\n </span>\r\n\r\n <span class=\"job-snip" + "pet-buttons pull-right\">\r\n <button class=\"btn btn-xs btn-" + "default\" data-ajax=\""); #line 76 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(Url.To("/jobs/actions/requeue/" + JobId)); #line default #line hidden WriteLiteral("\" data-loading-text=\"Enqueueing...\">Requeue</button>\r\n <bu" + "tton class=\"btn btn-xs btn-death\" data-ajax=\""); #line 77 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(Url.To("/jobs/actions/delete/" + JobId)); #line default #line hidden WriteLiteral(@""" data-loading-text=""Deleting..."" data-confirm=""Do you really want to delete this job?"">Delete</button> </span> <div class=""clearfix""></div> </div> <div class=""job-snippet-body""> <div class=""job-snippet-code""> "); #line 84 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" if (job.CreatedAt.HasValue) { #line default #line hidden WriteLiteral(" <div class=\"pull-right job-creation-date\">\r\n " + " Created\r\n "); #line 88 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(Html.RelativeTime(job.CreatedAt.Value)); #line default #line hidden WriteLiteral("\r\n </div>\r\n"); #line 90 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } #line default #line hidden #line 91 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" if (job != null) { #line default #line hidden WriteLiteral(" <pre><code>"); #line 93 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(JobMethodCallRenderer.Render(job.Job)); #line default #line hidden WriteLiteral("</code></pre>\r\n"); #line 94 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" <div class=\"clearfix\"></div>\r\n </div>\r" + "\n\r\n"); #line 98 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" if (job.Properties.Count > 0) { #line default #line hidden WriteLiteral(" <div class=\"job-snippet-properties\">\r\n " + " <dl>\r\n"); #line 102 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" foreach (var property in job.Properties) { #line default #line hidden WriteLiteral(" <dt>"); #line 104 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(property.Key); #line default #line hidden WriteLiteral("</dt>\r\n"); WriteLiteral(" <dd>\r\n " + " <pre><code>"); #line 106 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(property.Value); #line default #line hidden WriteLiteral("</code></pre>\r\n </dd>\r\n"); #line 108 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" </dl>\r\n </div>\r\n"); #line 111 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" </div>\r\n </div>\r\n"); #line 114 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" if (job.History.Count > 0) { #line default #line hidden WriteLiteral(" <h3>History</h3>\r\n"); #line 118 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" var index = 0; DateTime[] entriesCreationTime = job.History.Select(x => x.CreatedAt).ToArray(); var nextEntry = 1; foreach (var entry in job.History) { var background = index == 0 ? JobHistoryRenderer.GetForegroundStateColor(entry.StateName) : JobHistoryRenderer.GetBackgroundStateColor(entry.StateName); #line default #line hidden WriteLiteral(" <div class=\"job-history "); #line 129 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(index == 0 ? "job-history-current" : null); #line default #line hidden WriteLiteral("\">\r\n <div class=\"job-history-heading\" style=\""); #line 130 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(String.Format("background-color: {0};", background)); #line default #line hidden WriteLiteral("\">\r\n <span class=\"pull-right\" data-moment-title=\""); #line 131 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(JobHelper.ToTimestamp(entry.CreatedAt)); #line default #line hidden WriteLiteral("\">\r\n "); #line 132 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(Html.ToHumanDuration(entry.CreatedAt - (nextEntry < entriesCreationTime.Length ? entriesCreationTime[nextEntry] : job.CreatedAt))); #line default #line hidden WriteLiteral("\r\n"); #line 133 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" nextEntry++; #line default #line hidden WriteLiteral(" </span>\r\n <h4 class=\"job-h" + "istory-title\">\r\n "); #line 136 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(entry.StateName); #line default #line hidden WriteLiteral("\r\n\r\n"); #line 138 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" if (!String.IsNullOrWhiteSpace(entry.Reason)) { #line default #line hidden WriteLiteral(" <small>"); #line 140 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(entry.Reason); #line default #line hidden WriteLiteral("</small>\r\n"); #line 141 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" </h4>\r\n </div>\r\n\r\n"); #line 145 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" if (JobHistoryRenderer.Exists(entry.StateName)) { var rendered = Html.RenderHistory(entry.StateName, entry.Data); if (rendered != null) { #line default #line hidden WriteLiteral(" <div class=\"job-history-body\">\r\n " + " "); #line 151 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(rendered); #line default #line hidden WriteLiteral("\r\n </div>\r\n"); #line 153 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } } else { #line default #line hidden WriteLiteral(" <div class=\"job-history-body\">\r\n " + " <dl class=\"dl-horizontal\">\r\n"); #line 159 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" foreach (var item in entry.Data) { #line default #line hidden WriteLiteral(" <dt>"); #line 161 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(item.Key); #line default #line hidden WriteLiteral(":</dt>\r\n"); WriteLiteral(" <dd>"); #line 162 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" Write(item.Value); #line default #line hidden WriteLiteral("</dd>\r\n"); #line 163 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" </dl>\r\n </div>\r\n"); #line 166 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" </div>\r\n"); #line 168 "..\..\Dashboard\Pages\JobDetailsPage.cshtml" index++; } } } #line default #line hidden WriteLiteral(" </div>\r\n</div>"); }
public override void Execute() { WriteLiteral("\n"); #line 11 "..\..\Pages\JobDetailsPage.cshtml" var monitor = JobStorage.Current.GetMonitoringApi(); JobDetailsDto job = monitor.JobDetails(JobId.ToString()); string title = null; if (job != null) { title = job.Job != null?String.Format("{0}.{1}", job.Job.Type.Name, job.Job.Method.Name) : null; } title = title ?? "Job"; Layout = new LayoutPage { Title = title }; #line default #line hidden WriteLiteral("\n"); #line 27 "..\..\Pages\JobDetailsPage.cshtml" if (job == null) { #line default #line hidden WriteLiteral(" "); WriteLiteral(" The job with id \'"); #line 29 "..\..\Pages\JobDetailsPage.cshtml" Write(JobId); #line default #line hidden WriteLiteral("\' was expired or was not existed on the server.\n"); #line 30 "..\..\Pages\JobDetailsPage.cshtml" } else { #line default #line hidden WriteLiteral(" <div class=\"job-snippet-header\">\n <span class=\"job-snippet-tab\">\n " + " Job ID: <span class=\"job-snippet-id\">"); #line 35 "..\..\Pages\JobDetailsPage.cshtml" Write(HtmlHelper.JobId(JobId.ToString(), false)); #line default #line hidden WriteLiteral("</span>\n </span>\n\n <span class=\"job-snippet-buttons pull-right\">\n " + " <button class=\"btn btn-xs btn-default\" data-ajax=\""); #line 39 "..\..\Pages\JobDetailsPage.cshtml" Write(Request.LinkTo("/actions/requeue/" + JobId)); #line default #line hidden WriteLiteral("\" data-loading-text=\"Enqueueing...\">Requeue</button>\n <button class=\"b" + "tn btn-xs btn-death\" data-ajax=\""); #line 40 "..\..\Pages\JobDetailsPage.cshtml" Write(Request.LinkTo("/actions/delete/" + JobId)); #line default #line hidden WriteLiteral("\" data-loading-text=\"Deleting...\" data-confirm=\"Do you really want to delete this" + " job?\">Delete</button>\n </span>\n\n <div class=\"clearfix\"></div>\n " + " </div>\n"); WriteLiteral(" <div class=\"job-snippet\">\n <div class=\"job-snippet-code\">\n"); #line 47 "..\..\Pages\JobDetailsPage.cshtml" if (job.CreatedAt.HasValue) { #line default #line hidden WriteLiteral(" <div class=\"pull-right job-creation-date\">\n Cr" + "eated\n <span data-moment=\""); #line 51 "..\..\Pages\JobDetailsPage.cshtml" Write(JobHelper.ToStringTimestamp(job.CreatedAt.Value)); #line default #line hidden WriteLiteral("\"></span>\n </div>\n"); #line 53 "..\..\Pages\JobDetailsPage.cshtml" } #line default #line hidden #line 54 "..\..\Pages\JobDetailsPage.cshtml" if (job != null) { #line default #line hidden WriteLiteral(" <pre><code>"); #line 56 "..\..\Pages\JobDetailsPage.cshtml" Write(JobMethodCallRenderer.Render(job.Job)); #line default #line hidden WriteLiteral("</code></pre>\n"); #line 57 "..\..\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" <div class=\"clearfix\"></div>\n </div>\n\n"); #line 61 "..\..\Pages\JobDetailsPage.cshtml" if (job.Properties.Count > 0) { #line default #line hidden WriteLiteral(" <div class=\"job-snippet-properties\">\n <dl>\n"); #line 65 "..\..\Pages\JobDetailsPage.cshtml" foreach (var property in job.Properties) { #line default #line hidden WriteLiteral(" <dt>"); #line 67 "..\..\Pages\JobDetailsPage.cshtml" Write(property.Key); #line default #line hidden WriteLiteral("</dt>\n"); WriteLiteral(" <dd>\n <pre>"); #line 69 "..\..\Pages\JobDetailsPage.cshtml" Write(property.Value); #line default #line hidden WriteLiteral("</pre>\n </dd>\n"); #line 71 "..\..\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" </dl>\n </div>\n"); #line 74 "..\..\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" </div>\n"); #line 76 "..\..\Pages\JobDetailsPage.cshtml" if (job.History.Count > 0) { #line default #line hidden WriteLiteral(" <h3>History</h3>\n"); #line 80 "..\..\Pages\JobDetailsPage.cshtml" var index = 0; DateTime[] entriesCreationTime = job.History.Select(x => x.CreatedAt).ToArray(); var nextEntry = 1; foreach (var entry in job.History) { var background = JobHistoryRenderer.BackgroundStateColors.ContainsKey(entry.StateName) ? JobHistoryRenderer.BackgroundStateColors[entry.StateName] : null; if (index == 0) { background = JobHistoryRenderer.ForegroundStateColors.ContainsKey(entry.StateName) ? JobHistoryRenderer.ForegroundStateColors[entry.StateName] : null; } #line default #line hidden WriteLiteral(" <div class=\"job-history "); #line 98 "..\..\Pages\JobDetailsPage.cshtml" Write(index == 0 ? "job-history-current" : null); #line default #line hidden WriteLiteral("\">\n <div class=\"job-history-heading\" style=\""); #line 99 "..\..\Pages\JobDetailsPage.cshtml" Write(background != null ? String.Format("background-color: {0};", background) : null); #line default #line hidden WriteLiteral("\">\n <span class=\"pull-right\" data-moment-title=\""); #line 100 "..\..\Pages\JobDetailsPage.cshtml" Write(JobHelper.ToStringTimestamp(entry.CreatedAt)); #line default #line hidden WriteLiteral("\">\n "); #line 101 "..\..\Pages\JobDetailsPage.cshtml" Write(HtmlHelper.ToHumanDuration(entry.CreatedAt - (nextEntry < entriesCreationTime.Length ? entriesCreationTime[nextEntry] : job.CreatedAt))); #line default #line hidden WriteLiteral("\n"); #line 102 "..\..\Pages\JobDetailsPage.cshtml" nextEntry++; #line default #line hidden WriteLiteral(" </span>\n <h4 class=\"job-history-title\">\n " + " "); #line 105 "..\..\Pages\JobDetailsPage.cshtml" Write(entry.StateName); #line default #line hidden WriteLiteral("\n\n"); #line 107 "..\..\Pages\JobDetailsPage.cshtml" if (!String.IsNullOrWhiteSpace(entry.Reason)) { #line default #line hidden WriteLiteral(" <small>"); #line 109 "..\..\Pages\JobDetailsPage.cshtml" Write(entry.Reason); #line default #line hidden WriteLiteral("</small>\n"); #line 110 "..\..\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" </h4>\n </div>\n\n"); #line 114 "..\..\Pages\JobDetailsPage.cshtml" if (JobHistoryRenderer.Exists(entry.StateName)) { var rendered = JobHistoryRenderer.Render(entry.StateName, entry.Data); if (rendered != null) { #line default #line hidden WriteLiteral(" <div class=\"job-history-body\">\n " + " "); #line 120 "..\..\Pages\JobDetailsPage.cshtml" Write(rendered); #line default #line hidden WriteLiteral("\n </div>\n"); #line 122 "..\..\Pages\JobDetailsPage.cshtml" } } else { #line default #line hidden WriteLiteral(" <div class=\"job-history-body\">\n <dl cl" + "ass=\"dl-horizontal\">\n"); #line 128 "..\..\Pages\JobDetailsPage.cshtml" foreach (var item in entry.Data) { #line default #line hidden WriteLiteral(" <dt>"); #line 130 "..\..\Pages\JobDetailsPage.cshtml" Write(item.Key); #line default #line hidden WriteLiteral(":</dt>\n"); WriteLiteral(" <dd>"); #line 131 "..\..\Pages\JobDetailsPage.cshtml" Write(item.Value); #line default #line hidden WriteLiteral("</dd>\n"); #line 132 "..\..\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" </dl>\n </div>\n"); #line 135 "..\..\Pages\JobDetailsPage.cshtml" } #line default #line hidden WriteLiteral(" </div>\n"); #line 137 "..\..\Pages\JobDetailsPage.cshtml" index++; } } } #line default #line hidden }