private static string Invoke <T>(Func <string, T> action, string options, ErrorCode expectedErrorCode = ErrorCode.UnknownError) { object result; try { result = action(options); } catch (SerializationException ex) { result = new GlobalizationError(ErrorCode.UnknownError, ex.Message); } catch (Exception ex) { // Using a method' specific expected error code here result = new GlobalizationError(expectedErrorCode, ex.Message); } string resultJSON = result as string; if (resultJSON != null) { return(resultJSON); } // This is either a DataContract type or a GlobalizationError return(JsonHelper.Serialize(result)); }
private void Invoke <T>(Func <string, T> action, string options, ErrorCode expectedErrorCode = ErrorCode.UnknownError) { object result; try { result = action(ExtractGlobalizationOptions(options)); } catch (SerializationException ex) { result = new GlobalizationError(ErrorCode.UnknownError, ex.Message); } catch (Exception ex) { // Using a method' specific expected error code here result = new GlobalizationError(expectedErrorCode, ex.Message); } if (result is GlobalizationError) { this.DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, result)); } else { this.DispatchCommandResult(new PluginResult(PluginResult.Status.OK, result)); } }