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); }
/// <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); } }
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); }
/// <summary> /// 获取异常提示 /// </summary> /// <param name="exception">异常</param> public static string GetPrompt(this Exception exception) { return(ExceptionPrompt.GetPrompt(exception)); }
/// <summary> /// 获取异常提示 /// </summary> /// <param name="exception">异常</param> public static string GetPrompt(this Exception exception) => ExceptionPrompt.GetPrompt(exception);
private void ShowException(Exception ex) { DispatcherHelper.CheckBeginInvokeOnUI(() => { Container.Instance.Resolve<ViewModelLocator>("ViewModelLocator").Main.IsBusy = false; var exception = new ExceptionPrompt(); exception.Show(ex); } ); }
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); } } } }
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); } } ); } }
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); } } }