public static async Task <string> ExecuteRequest(ReportExecutionResultSet executionSet) { var requestId = string.Empty; var execService = new ReportExecutionService(SessionRepository); var reportJob = await execService.ExecuteReportAsync(executionSet.GetDefaultRequestObject()); return(reportJob.requestId); }
private void ExecutionCancelled(ReportExecutionResultSet cancelResultSet) { var item = executeReportsCollection.FirstOrDefault(r => r.resultSet.guid == cancelResultSet.guid); cancelResultSet.status = "Cancelled"; if (item != null) { var i = executeReportsCollection.IndexOf(item); executeReportsCollection[i].resultSet = cancelResultSet; } }
public async Task BeginRequestExecution(ReportExecutionResultSet executionSet) { try { var reportUnit = executionSet.resource; if (reportUnit != null) { executionSet.successful = false; executionSet.requestId = await ExecuteManager.ExecuteRequest(executionSet); if (string.IsNullOrEmpty(executionSet.requestId)) { throw new Exception("request failed upstream [Event: ExecuteRequest]"); } //send client message resultset executionSet.status = "In Progress"; await UpdateCallingClient(executionSet); var pollResult = await ExecuteManager.PollRequest(executionSet.requestId); if (pollResult.Key == null) { throw new Exception("request failed upstream - unable to poll executing request [Event: PollRequest]"); } var exportDetails = await ExecuteManager.GetExecutionDetails(pollResult); if (exportDetails == null) { throw new Exception("request failed upstream - unable to fetch executing request details [Event: GetExecutionDetails]"); } executionSet.export = exportDetails.exports.FirstOrDefault(); executionSet.status = executionSet.export.status; executionSet.successful = (string.IsNullOrEmpty(executionSet.internalError) && !executionSet.status.Equals("failed", StringComparison.OrdinalIgnoreCase)); executionSet.internalError = (executionSet.export.errorDescriptor != null) ? $"[{executionSet.export.errorDescriptor.errorCode}] - {executionSet.export.errorDescriptor.message}" : string.Empty; //send final update to client await UpdateCallingClient(executionSet); } } catch (Exception ex) { //send requestFailed message to sender executionSet.status = "Internal Failure"; executionSet.internalError = ex.Message; await UpdateCallingClient(executionSet, true); } }
public async Task UpdateCallingClient(ReportExecutionResultSet executionSet, bool isException = false) { Console.WriteLine($"Poll Item Updated : [{executionSet.guid} - {executionSet.resource.label}] : STATUS = [{executionSet.status}]"); Console.WriteLine($"ConnectionId : {Context.ConnectionId}"); if (isException) { Console.WriteLine($"Poll Item Internal ERR : {executionSet.internalError}"); await Clients.All.ServerRequestFailed(executionSet); } else { await Clients.Caller.RequestUpdating(executionSet); } }
private void UpdateExecutionSet(ReportExecutionResultSet updatedResultSet) { var item = executeReportsCollection.FirstOrDefault(r => r.resultSet.guid == updatedResultSet.guid); if (item != null) { var indexOf = executeReportsCollection.IndexOf(item); Uri srcUri = null; if (updatedResultSet.successful) { srcUri = new Uri(@"C:\Users\cameron.heilman\Documents\WR\GIT_JAPI\japi\JAPI\JAPI.App\Resources\check-mark-11-32.png"); item.rowStatus = WPFRecrodStatus.Success; } else { srcUri = (string.IsNullOrEmpty(updatedResultSet.internalError) && !updatedResultSet.status.Equals("Failed", StringComparison.OrdinalIgnoreCase)) ? new Uri(@"C:\Users\cameron.heilman\Documents\WR\GIT_JAPI\japi\JAPI\JAPI.App\Resources\clock-8-32.png") : new Uri(@"C:\Users\cameron.heilman\Documents\WR\GIT_JAPI\japi\JAPI\JAPI.App\Resources\x-mark-3-32.png"); item.rowStatus = (string.IsNullOrEmpty(updatedResultSet.internalError) && !updatedResultSet.status.Equals("Failed", StringComparison.OrdinalIgnoreCase)) ? WPFRecrodStatus.InProgress : WPFRecrodStatus.Failed; } item.Image = new BitmapImage(srcUri); item.resultSet = updatedResultSet; executeReportsCollection[indexOf] = item; //var nextCount = pollService.pollingSlots - executeReportsCollection.Count(x => x.rowStatus == WPFRecrodStatus.InProgress); //if (nextCount > 0 && executeReportsCollection.Count(x => x.rowStatus == WPFRecrodStatus.Waiting) > 0) //{ // Task.Factory.StartNew(async () => // { // await pollService.SendExecutionRequests(executeReportsCollection.Where(x => x.rowStatus == WPFRecrodStatus.Waiting), nextCount); // }); //} } }
public Task CancelRequest(ReportExecutionResultSet executeRequest) { return(hubProxy.Invoke("CancelRequestExecution", executeRequest)); }
public Task SendExecutionRequest(ReportExecutionResultSet executeRequest) { return(hubProxy.Invoke("BeginRequestExecution", executeRequest)); }
private void SendCancelExecution(ReportExecutionResultSet resultSet) { throw new NotImplementedException(); }