Beispiel #1
0
 public void ErrorHandler( Fault fault )
 {
     System.Windows.Browser.HtmlPage.Window.Alert( " in fault - " + fault.Message );
 }
Beispiel #2
0
 public void ErrorHandler( Fault fault )
 {
     App.ViewModel.ErrorText = fault.Message;
       page.NavigationService.Navigate( new Uri( "/ErrorPage.xaml", UriKind.Relative ) );
       //System.Windows.Browser.HtmlPage.Window.Alert( " in fault - " + fault.Message );
 }
Beispiel #3
0
 public void ErrorHandler(Fault fault)
 {
     asyncToken.Fault = fault;
 }
Beispiel #4
0
 internal void PublishErrorHandler(Fault fault)
 {
     System.Console.WriteLine("got error - " + fault.Detail);
 }
Beispiel #5
0
 internal BackendlessFault(Weborb.Client.Fault fault)
 {
     _faultCode = fault.FaultCode;
     _message   = fault.Message;
     _detail    = fault.Detail;
 }
Beispiel #6
0
        private void SetStreamDataCallback <T>(IAsyncResult asynchronousResult)
        {
            AsyncStreamSetInfo <T> asyncStreamSetInfo = (AsyncStreamSetInfo <T>)asynchronousResult.AsyncState;

            try
            {
                HttpWebRequest request = asyncStreamSetInfo.request;
                // End the operation.
                Stream postStream = request.EndGetRequestStream(asynchronousResult);
                postStream.Write(asyncStreamSetInfo.requestBytes, 0, asyncStreamSetInfo.requestBytes.Length);
                postStream.Flush();
                postStream.Close();
                asyncStreamSetInfo.messageSentTime = DateTime.Now.Ticks;
                request.BeginGetResponse(new AsyncCallback(ProcessAMFResponse <T>), asyncStreamSetInfo);
                if (Timeout > 0)
                {
                    Timer timer = new Timer(state =>
                    {
                        if (!request.HaveResponse)
                        {
                            request.Abort();
                        }
                    });
                    timer.Change(Timeout, System.Threading.Timeout.Infinite);
                }
                // allDone.Set();
            }
            catch (Exception exception)
            {
                String error = exception.Message;
                if (exception is WebException && ((WebException)exception).Status == WebExceptionStatus.RequestCanceled)
                {
                    error = TIMEOUT_FAULT_MESSAGE;
                }

#if (!UNIVERSALW8 && !FULL_BUILD && !WINDOWS_PHONE && !PURE_CLIENT_LIB && !WINDOWS_PHONE8)
                if (exception is SecurityException)
                {
                    if (WeborbClient.Uri.Scheme.ToLower().StartsWith("file"))
                    {
                        error = SECURITY_FAULT_MESSAGE;
                    }
                }

                if (UiControl != null)
                {
                    UiControl.Dispatcher.BeginInvoke(delegate()
                    {
                        HtmlPage.Window.Alert(error);
                    });
                }
#endif
                if (asyncStreamSetInfo != null)
                {
                    Fault fault = new Fault(error, exception.StackTrace, INTERNAL_CLIENT_EXCEPTION_FAULT_CODE);
                    if (asyncStreamSetInfo.responder != null)
                    {
                        asyncStreamSetInfo.responder.ErrorHandler(fault);
                    }
                }
            }
        }
Beispiel #7
0
        private async Task <T> SendHttpRequest <T>(V3Message v3Msg, IDictionary requestHeaders, IDictionary httpHeaders,
                                                   ResponseThreadConfigurator threadConfigurator)
        {
            HttpWebRequest webReq;

            try
            {
                webReq = GetWebRequest();
            }
            catch (Exception e)
            {
                throw new WebORBException(GetFault(e));
            }

            if (httpHeaders != null)
            {
                foreach (DictionaryEntry header in httpHeaders)
                {
                    webReq.Headers[header.Key.ToString()] = header.Value.ToString();
                }
            }

            webReq.CookieContainer = Cookies;

            byte[] requestBytes = CreateRequest(v3Msg, requestHeaders);

            // Set the ContentType property.
            webReq.ContentType = "application/x-amf";
            // Set the Method property to 'POST' to post data to the URI.
            webReq.Method = "POST";
            // Start the asynchronous operation.

            Stream postStream = await webReq.GetRequestStreamAsync();

            try
            {
                // End the operation.
                postStream.Write(requestBytes, 0, requestBytes.Length);
                postStream.Flush();
                postStream.Close();

                HttpWebResponse response = (HttpWebResponse)await webReq.GetResponseAsync();

                threadConfigurator?.Invoke();

                if (Cookies != null)
                {
                    foreach (Cookie cookie in response.Cookies)
                    {
                        Cookies.Add(new Uri(GatewayUrl), cookie);
                    }
                }

                var streamResponse = response.GetResponseStream();
                var parser         = new RequestParser();
                var responseObject = parser.readMessage(streamResponse);
                var responseData   = (object[])responseObject.getRequestBodyData();
                var v3             = (V3Message)((IAdaptingType)responseData[0]).defaultAdapt();

                if (v3.isError)
                {
                    var errorMessage = (ErrMessage)v3;
                    var fault        = new Fault(errorMessage.faultString, errorMessage.faultDetail, errorMessage.faultCode);
                    throw new WebORBException(fault);
                }

                var body =
                    (IAdaptingType)((AnonymousObject)((NamedObject)responseData[0]).TypedObject).Properties["body"];

                var result = (T)body.adapt(typeof(T));
                return(result);
            }
            catch (Exception exception)
            {
                if (exception is WebORBException)
                {
                    throw exception;
                }

                throw new WebORBException(GetFault(exception));
            }
        }