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);
        }