Esempio n. 1
0
        private async Task <HttpResultMessage <object> > RemoteExecuteAsync(HttpRequestMessage httpMessage)
        {
            var resultMessage = new HttpResultMessage <object>();

            try
            {
                resultMessage.Result = await _serviceProxyProvider.Invoke <object>(httpMessage.Parameters, httpMessage.RoutePath, httpMessage.ServiceKey);

                resultMessage.IsSucceed  = resultMessage.Result != default;
                resultMessage.StatusCode = resultMessage.IsSucceed ? (int)StatusCode.Success : (int)StatusCode.RequestError;
            }
            catch (Exception exception)
            {
                if (_logger.IsEnabled(LogLevel.Error))
                {
                    _logger.LogError(exception, $"执行远程调用逻辑时候发生了错误:{exception.Message}");
                }

                resultMessage.Result     = null;
                resultMessage.StatusCode = (int)StatusCode.RequestError;
                resultMessage.Message    = "执行发生了错误。";
                resultMessage.Message    = ExceptionPrompt.GetPrompt(exception);
            }

            return(resultMessage);
        }
Esempio n. 2
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="moduleContext">应用模块上下文</param>
        public override void Initialize(ModuleInitializationContext moduleContext)
        {
            var serviceProvider = moduleContext.ServiceProvoider.GetInstances <IServiceProvider>();

            _application.Initialize(serviceProvider);
            var abpExceptionPrompt = moduleContext.ServiceProvoider.GetInstances <AbpExceptionPrompt>();

            if (abpExceptionPrompt != null)
            {
                ExceptionPrompt.AddPrompt(abpExceptionPrompt);
            }
        }
Esempio n. 3
0
        private async Task <HttpResultMessage <object> > LocalExecuteAsync(ServiceEntry entry,
                                                                           HttpRequestMessage httpMessage)
        {
            var resultMessage = new HttpResultMessage <object>();

            try
            {
                var result = await entry.Func(httpMessage.ServiceKey, httpMessage.Parameters);

                var task = result as Task;

                if (task == null)
                {
                    resultMessage.Result = result;
                }
                else
                {
                    task.Wait();
                    var taskType = task.GetType().GetTypeInfo();
                    if (taskType.IsGenericType)
                    {
                        resultMessage.Result = taskType.GetProperty("Result").GetValue(task);
                    }
                }

                resultMessage.IsSucceed  = resultMessage.Result != null;
                resultMessage.StatusCode = resultMessage.IsSucceed ? (int)StatusCode.Success : (int)StatusCode.RequestError;
            }
            catch (ValidateException validateException)
            {
                if (_logger.IsEnabled(LogLevel.Error))
                {
                    _logger.LogError(validateException, $"执行本地逻辑时候发生了错误:{validateException.Message}", validateException);
                }

                resultMessage.Message    = validateException.Message;
                resultMessage.StatusCode = validateException.HResult;
            }
            catch (Exception exception)
            {
                if (_logger.IsEnabled(LogLevel.Error))
                {
                    _logger.LogError(exception, $"执行本地逻辑时候发生了错误:{exception.Message}");
                }

                resultMessage.StatusCode = exception.HResult;
                resultMessage.Message    = "执行发生了错误。";
                resultMessage.Message    = ExceptionPrompt.GetPrompt(exception);
            }

            return(resultMessage);
        }
Esempio n. 4
0
 /// <summary>
 /// 获取异常提示
 /// </summary>
 /// <param name="exception">异常</param>
 public static string GetPrompt(this Exception exception)
 {
     return(ExceptionPrompt.GetPrompt(exception));
 }
Esempio n. 5
0
 /// <summary>
 /// 获取异常提示
 /// </summary>
 /// <param name="exception">异常</param>
 public static string GetPrompt(this Exception exception) => ExceptionPrompt.GetPrompt(exception);
Esempio n. 6
0
 private void ShowException(Exception ex)
 {
     DispatcherHelper.CheckBeginInvokeOnUI(() =>
     {
         Container.Instance.Resolve<ViewModelLocator>("ViewModelLocator").Main.IsBusy = false;
         var exception = new ExceptionPrompt();
         exception.Show(ex);
     }
     );
 }
Esempio n. 7
0
        public void PublishLocationResult(object sender, PublishLocationEventArgs args)
        {
            if (args.Error != null)
            {
                DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    IsBusy = false;
                    if (args.Error is WebException)
                    {
                        MessageBox.Show(args.Error.Message);
                    }
                    else
                    {
                        var exception = new ExceptionPrompt();
                        exception.Show(args.Error);
                    }
                });
            }
            else
            {
                if (!args.IsSuccess)
                {
                    DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        IsBusy = false;
                        var message = new DialogMessage(
                            "Communication error!", DialogMessageCallback)
                        {
                            Button = MessageBoxButton.OK,
                            Caption = "Error!"
                        };

                        Messenger.Default.Send(message);
                    });
                }
                else
                {
                    //update also the picture
                    byte[] img = IsolatedStorageHelper.LoadFromLocalStorageArray(Constants.MYPICTURE_FILE_NAME, "profiles");
                    if (img != null)
                    {
                        ServiceAgent.PublishMyPicture(Identification.GetDeviceId(), img, new EventHandler<PublishLocationEventArgs>(PublishMyPictureResult));
                    }
                    else
                    {
                        //update friends list
                        ServiceAgent.GetFriends(this.GetFriendsResult);
                    }
                }
            }

        }
Esempio n. 8
0
 public void GetFriendsResult(object sender, FriendsListEventArgs args)
 {
     if (args.Error == null)
     {
         List<Friend> list = args.Friends;
         DispatcherHelper.CheckBeginInvokeOnUI(() =>
             {
                 IsBusy = false;
                 PopulatePushPins(list);
             }
         );
     }
     else
     {
         DispatcherHelper.CheckBeginInvokeOnUI(() =>
             {
                 IsBusy = false;
                 if (args.Error is WebException)
                 {
                     MessageBox.Show(args.Error.Message);
                 }
                 else
                 {
                     var exception = new ExceptionPrompt();
                     exception.Show(args.Error);
                 }
             }
         );
     }
 }
Esempio n. 9
0
        public void PublishMyPictureResult(object sender, PublishLocationEventArgs args)
        {
            //
            if (args.Error != null)
            {
                DispatcherHelper.CheckBeginInvokeOnUI(() =>
                {
                    IsBusy = false;
                    if (args.Error is WebException)
                    {
                        MessageBox.Show(args.Error.Message);
                    }
                    else
                    {
                        var exception = new ExceptionPrompt();
                        exception.Show(args.Error);
                    }
                });
            }
            else
            {
                if (!args.IsSuccess)
                {
                    DispatcherHelper.CheckBeginInvokeOnUI(() =>
                    {
                        IsBusy = false;
                        var message = new DialogMessage(
                            "Communication error!", DialogMessageCallback)
                        {
                            Button = MessageBoxButton.OK,
                            Caption = "Error!"
                        };

                        Messenger.Default.Send(message);
                    });
                }
                else
                {
                    //update friends list
                    ServiceAgent.GetFriends(this.GetFriendsResult);
                }
            }
        }