public IHttpContext UpdateMessage(IHttpContext context) { #if DEBUG context.Response.Headers["Access-Control-Allow-Origin"] = "*"; context.Response.Headers["Access-Control-Allow-Methods"] = "OPTIONS, HEAD, GET, DELETE, POST, PUT"; #endif var isNumber = int.TryParse(context.Request.PathParameters["msgId"], out int msgId); if (isNumber) { MQTTProxyMessage msg = Broker.db.messageList.FirstOrDefault(elem => elem.MsgId == msgId); if (msg != null) { try { MQTTProxyMessage newMsg = JsonConvert.DeserializeObject <MQTTProxyMessage>(context.Request.Payload); msg.Payload = newMsg.Payload; context.Response.SendJSON(msg); } catch (Exception e) { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.BadRequest, e); } } else { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.BadRequest, "There is no message associated with this msgId"); } } else { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.BadRequest, "Enter a valid msgId"); } return(context); }
public IHttpContext DeleteMessage(IHttpContext context) { #if DEBUG context.Response.Headers["Access-Control-Allow-Origin"] = "*"; context.Response.Headers["Access-Control-Allow-Methods"] = "OPTIONS, HEAD, GET, DELETE, POST, PUT"; #endif var isNumber = int.TryParse(context.Request.PathParameters["msgId"], out int msgId); if (isNumber) { MQTTProxyMessage msg = Broker.db.messageList.FirstOrDefault(elem => elem.MsgId == msgId); if (msg != null) { Broker.db.messageList.Remove(msg); context.Response.SendJSON(msg); } else { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.BadRequest, "There is no message associated with this msgId"); } } else { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.BadRequest, "Enter a valid msgId"); } return(context); }
public IHttpContext SendMessage(IHttpContext context) { #if DEBUG context.Response.Headers["Access-Control-Allow-Origin"] = "*"; context.Response.Headers["Access-Control-Allow-Methods"] = "OPTIONS, HEAD, GET, DELETE, POST, PUT"; #endif if (int.TryParse(context.Request.PathParameters["msgId"], out int msgId)) { MQTTProxyMessage msg = Broker.db.messageList.FirstOrDefault(elem => elem.MsgId == msgId); if (msg != null) { var manager = Broker.clientManagers.FirstOrDefault(i => i.Key.Equals(context.Request.PathParameters["clientId"])).Value; if (manager != null) { Console.WriteLine(context.Request.PathParameters["whichWay"]); MQTT_Proxy.Client client = null; if (context.Request.PathParameters["whichWay"] == "clientIn") { client = manager.clientIn; } else if (context.Request.PathParameters["whichWay"] == "clientOut") { client = manager.clientOut; } else { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.BadRequest, "Please enter '[clientId]/clientIn' or '[clientId]/clientOut'"); return(context); } //correct client.SendMessage(msg.ToMqttApplicationMessage()).Wait(); msg.State = MessageState.Sent; context.Response.SendJSON(msg); } else { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.BadRequest, "Please enter valid clientId."); } } else { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.BadRequest, "No message associated with this msgId."); } } else { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.BadRequest, "Please enter a valid msgId."); } return(context); }
public IHttpContext CopyMessage(IHttpContext context) { #if DEBUG context.Response.Headers["Access-Control-Allow-Origin"] = "*"; context.Response.Headers["Access-Control-Allow-Methods"] = "OPTIONS, HEAD, GET, DELETE, POST, PUT"; #endif if (int.TryParse(context.Request.PathParameters["msgId"], out int msgId)) { MQTTProxyMessage msg = Broker.db.messageList.FirstOrDefault(elem => elem.MsgId == msgId); if (msg != null) { MQTTProxyMessage newMsg = new MQTTProxyMessage(msg); Broker.db.messageList.Add(newMsg); context.Response.SendJSON(newMsg); } } else { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.BadRequest, "Enter a valid msgId"); } return(context); }