Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
                //    });
                //}
            }
        }
Esempio n. 6
0
 public Task CancelRequest(ReportExecutionResultSet executeRequest)
 {
     return(hubProxy.Invoke("CancelRequestExecution", executeRequest));
 }
Esempio n. 7
0
 public Task SendExecutionRequest(ReportExecutionResultSet executeRequest)
 {
     return(hubProxy.Invoke("BeginRequestExecution", executeRequest));
 }
Esempio n. 8
0
 private void SendCancelExecution(ReportExecutionResultSet resultSet)
 {
     throw new NotImplementedException();
 }