private void TryOperation(Action action) { try { action.Invoke(); } catch (ArgumentException e) { Response = WorkflowHttpResponse.BadRequest(e); } catch (InvalidOperationException e) { Response = WorkflowHttpResponse.Forbidden(e); } catch (Exception e) { Response = WorkflowHttpResponse.InternalServerError(e); } }
private WorkflowHttpResponse RespondToPost(WorkflowHttpRequest request) { IRequestMessageParser parser; if (!RequestMessageParserFactory.TryCreateParser(request.ContentType, out parser)) { return(WorkflowHttpResponse.UnsupportedMediaType); } var visitor = new HttpPostWorkflowNodeVisitor(_workflow, request.RawUrl); try { parser.Parse(request.InputStream).AcceptVisitor(visitor); } catch (ArgumentException e) { return(WorkflowHttpResponse.BadRequest(e)); } return(visitor.Response); }