public void GetWorkshops(HttpListenerResponse response, IGetWorkshops getWorkshops, string user) { GetWorkshopsResponse workshops = getWorkshops.Execute(); var slackMessage = ToSlackMessage(workshops, user); string jsonForSlack = JsonConvert.SerializeObject(slackMessage); byte[] responseArray = Encoding.UTF8.GetBytes(jsonForSlack); response.AddHeader("Content-type", "application/json"); response.OutputStream.Write(responseArray, 0, responseArray.Length); Console.WriteLine("no payload"); }
private void ToggleAttendance(HttpListenerContext context) { var payload = new StreamReader(context.Request.InputStream).ReadToEnd(); var firstString = HttpUtility.UrlDecode(payload); var payloadString = HttpUtility.ParseQueryString(firstString); Dictionary <string, string> dictionary = payloadString .Keys .Cast <string>() .ToDictionary(k => k, k => payloadString[k]); SlackButtonPayload deserialisedPayload = JsonConvert.DeserializeObject <SlackButtonPayload>(dictionary["payload"]); //Console.WriteLine(deserialisedPayload.Actions[0].Value); ToggleWorkshopAttendanceRequest toggleWorkshopAttendanceRequest = new ToggleWorkshopAttendanceRequest() { User = deserialisedPayload.User.Name, WorkshopId = deserialisedPayload.Actions[0].Value }; string response_url = deserialisedPayload.ResponseURL; _toggleWorkshopAttendance.Execute(toggleWorkshopAttendanceRequest); GetWorkshopsResponse workshops = _getWorkshops.Execute(); var slackMessage = ToSlackMessage(workshops, toggleWorkshopAttendanceRequest.User); string jsonForSlack = JsonConvert.SerializeObject(slackMessage); WebClient webClient = new WebClient(); webClient.Headers.Add("Content-type", "application/json"); webClient.UploadString(response_url, "POST", jsonForSlack); }