private HttpResponseMessage ProcessCommand() { var requestHandler = RequestHandlerFactory.GetHandler(this.Command); if (requestHandler != null) { requestHandler.Initialize(this.Device, this.RequestContent); var responseMessage = new HttpResponseMessage(HttpStatusCode.OK); var responseObj = requestHandler.Handle(); var responseXml = responseObj.GetAsXML(); var encoder = new ASWBXML(); encoder.LoadXml(responseXml); var wbxmlContent = encoder.GetBytes(); responseMessage.Content = new ByteArrayContent(wbxmlContent); responseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-sync.wbxml"); return(responseMessage); } else { //TODO: Return appropriate ResponseMessage //throw new InvalidCommandException(string.Format("Command {0} is not supported", this.Command.ToString())); return(new HttpResponseMessage(HttpStatusCode.BadRequest)); } //TODO: Resturn Appropriate Response return(new HttpResponseMessage(HttpStatusCode.OK)); }
public ActionResult PostLogin(UserLoginViewModel model, string returnUrl) { try { var redirectUrl = nameof(Login); var loginRequest = new LoginRequest { Password = model.Password, Username = model.UserName }; var handlerFactory = new RequestHandlerFactory(); var requestHandler = handlerFactory.GetHandler(); requestHandler.HandleLoginQuery(loginRequest, // onSuccess async(user) => { await CreateCookie(user); redirectUrl = returnUrl ?? "/Home"; }, //onFailure errorMessage => { TempData[errorMessageString] = errorMessage; }); return(Redirect(redirectUrl)); } catch (Exception ex) { TempData["Exception"] = ex; TempData["Model"] = model; return(View("Error")); } }
public async Task Handle(Message message) { if (message == null) { throw new ArgumentNullException("message"); } log.Trace("MessageType: '{0}'", message.MessageType.ToString()); var unwrapper = new MessageUnwrapper(message); Request request = unwrapper.GetRequest(); RequestHandler handler = null; ErrorResponse errorResponse = null; try { var factory = new RequestHandlerFactory(containerManager, jobManager, message.MessageType, request); handler = factory.GetHandler(); } catch (Exception ex) { log.ErrorException(ex); errorResponse = new ErrorResponse { Message = ex.Message }; } if (errorResponse != null) { await messageWriter.WriteAsync(errorResponse); return; } try { var streamingHandler = handler as IStreamingHandler; if (streamingHandler != null) { Response finalResponse = await streamingHandler.HandleAsync(messageWriter, cancellationToken); if (finalResponse == null) { string errorMessage = String.Format("Null final response from streaming handler '{0}'", streamingHandler.GetType()); log.Error(errorMessage); finalResponse = new ErrorResponse { Message = errorMessage }; } await messageWriter.WriteAsync(finalResponse); return; } else { Response response = await handler.HandleAsync(); await messageWriter.WriteAsync(response); } } catch (Exception ex) { if (ex is WardenException) { throw; } else { throw new WardenException(String.Format("Exception in request handler '{0}'", handler.ToString()), ex); } } log.Trace("Finished handling message: '{0}'", message.MessageType.ToString()); }