/// <summary>
        /// Executes a Report
        /// </summary>
        /// <param name="reportName">Name of Report to Run.</param>
        public void ExecuteReportAsync(string reportName)
        {
            Console.Write("ExecuteReport started \n");
            this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(Diagnostics.TraceLevel.Info, "Called Method ExecuteReport Asynchronously.");
            ReportCallCompletedEventArgs <Report> reportCallCompletedEventArgs = new ReportCallCompletedEventArgs <Report>();

            Console.Write("callCompletedEventArgs instantiated \n");
            if (string.IsNullOrEmpty(reportName))
            {
                IdsException exception = new IdsException(Resources.ParameterNotNullMessage, new ArgumentNullException(Resources.StringParameterNullOrEmpty));
                Console.Write("IdsException instantiated \n");
                this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(Diagnostics.TraceLevel.Error, string.Format(CultureInfo.InvariantCulture, Resources.ExceptionGeneratedMessage, exception.ToString()));
                reportCallCompletedEventArgs.Error = exception;
                this.OnExecuteReportAsyncCompleted(this, reportCallCompletedEventArgs);
            }
            else
            {
                try
                {
                    AsyncService asyncService = new AsyncService(this.serviceContext);
                    asyncService.OnExecuteReportAsyncCompleted += new ReportServiceCallback <Report> .ReportCallCompletedEventHandler(this.ExecuteReportAsyncCompleted);

                    string reportsQueryParameters = GetReportQueryParameters();
                    asyncService.ExecuteReportAsync(reportName as string, reportsQueryParameters as string);
                }
                catch (SystemException systemException)
                {
                    this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(TraceLevel.Error, systemException.Message);
                    IdsException idsException = new IdsException(systemException.Message);
                    reportCallCompletedEventArgs.Error = idsException;
                    this.OnExecuteReportAsyncCompleted(this, reportCallCompletedEventArgs);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// call back method for asynchronously Executing a Report
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="eventArgs">The <see cref="Intuit.Ipp.Core.AsyncCallCompletedEventArgs"/> instance containing the event data.</param>
        private void ExecuteReportAsynCompleted(object sender, AsyncCallCompletedEventArgs eventArgs)
        {
            ReportCallCompletedEventArgs <Report> reportCallCompletedEventArgs = new ReportCallCompletedEventArgs <Report>();

            if (eventArgs.Error == null)
            {
                try
                {
                    IEntitySerializer responseSerializer = CoreHelper.GetSerializer(this.serviceContext, false);
                    string            response           = eventArgs.Result;
                    if (!response.StartsWith("{\"Report\":"))
                    {
                        response = "{\"Report\":" + response + "}";
                    }
                    IntuitResponse restResponse = (IntuitResponse)responseSerializer.Deserialize <IntuitResponse>(response);
                    reportCallCompletedEventArgs.Report = restResponse.AnyIntuitObject as Report;
                    this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(Diagnostics.TraceLevel.Info, "Finished Executing event Execute ReportAsynCompleted in AsyncService object.");
                    this.OnExecuteReportAsyncCompleted(this, reportCallCompletedEventArgs);
                }
                catch (SystemException systemException)
                {
                    IdsException idsException = CreateIdsException(systemException);
                    this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(TraceLevel.Error, idsException.ToString());
                    reportCallCompletedEventArgs.Error = idsException;
                    this.OnExecuteReportAsyncCompleted(this, reportCallCompletedEventArgs);
                }
            }
            else
            {
                reportCallCompletedEventArgs.Error = eventArgs.Error;
                this.OnExecuteReportAsyncCompleted(this, reportCallCompletedEventArgs);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Executes a Report (asynchronously) under the specified realm in an asynchronous manner. The realm must be set in the context.
        /// </summary>
        /// <param name="reportName">Name of the Report to Run</param>
        /// <param name="reportsQueryParameters">Report Parameters for query string</param>
        public void ExecuteReportAsync(string reportName, string reportsQueryParameters)
        {
            this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(Diagnostics.TraceLevel.Info, "Called Method ExecuteReport Asynchronously.");
            AsyncRestHandler asyncRestHandler = new AsyncRestHandler(this.serviceContext);

            asyncRestHandler.OnCallCompleted += new EventHandler <AsyncCallCompletedEventArgs>(this.ExecuteReportAsynCompleted);
            ReportCallCompletedEventArgs <Report> reportCallCompletedEventArgs = new ReportCallCompletedEventArgs <Report>();
            string resourceString = reportName;

            try
            {
                // Builds resource Uri
                string uri = "";
                if (!string.IsNullOrEmpty(reportsQueryParameters))
                {
                    uri = string.Format(CultureInfo.InvariantCulture, "{0}/company/{1}/reports/{2}?{3}", Utility.CoreConstants.VERSION, this.serviceContext.RealmId, resourceString, reportsQueryParameters);
                }
                else
                {
                    uri = string.Format(CultureInfo.InvariantCulture, "{0}/company/{1}/reports/{2}", Utility.CoreConstants.VERSION, this.serviceContext.RealmId, resourceString);
                }

                // Create request parameters
                RequestParameters parameters;
                if (this.serviceContext.IppConfiguration.Message.Request.SerializationFormat == Intuit.Ipp.Core.Configuration.SerializationFormat.Json)
                {
                    parameters = new RequestParameters(uri, HttpVerbType.GET, Utility.CoreConstants.CONTENTTYPE_APPLICATIONJSON);
                }
                else
                {
                    parameters = new RequestParameters(uri, HttpVerbType.GET, Utility.CoreConstants.CONTENTTYPE_APPLICATIONXML);
                }

                // Prepare request
                HttpWebRequest request = asyncRestHandler.PrepareRequest(parameters, new Report());

                //// get response
                asyncRestHandler.GetResponse(request);
            }
            catch (SystemException systemException)
            {
                this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(TraceLevel.Error, systemException.Message);
                IdsException idsException = new IdsException(systemException.Message);
                reportCallCompletedEventArgs.Error = idsException;
                this.OnExecuteReportAsyncCompleted(this, reportCallCompletedEventArgs);
            }
        }
 /// <summary>
 /// ExecuteReport Asynchronous call back method
 /// </summary>
 /// <param name="sender">Rest handler class</param>
 /// <param name="eventArgs">callback event arguments</param>
 private void ExecuteReportAsyncCompleted(object sender, ReportCallCompletedEventArgs <Report> eventArgs)
 {
     this.serviceContext.IppConfiguration.Logger.CustomLogger.Log(Diagnostics.TraceLevel.Info, "Finished Executing Method ExecuteReport Async.");
     this.OnExecuteReportAsyncCompleted(sender, eventArgs);
 }