/// <summary>
        /// POST: api/Messages
        /// Receive a message from a user and reply to it
        /// </summary>
        public async Task <HttpResponseMessage> Post([FromBody] Activity activity)
        {
            if (activity.Type == ActivityTypes.Message)
            {
                if (carouselCard == null)
                {
                    carouselCard = new CarouselCardsDialog();
                }
                string message = activity.Text.Trim().ToLower();
                if (message == "login")
                {
                    authInfo = await IhrHelper.LoginToIHR();

                    ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
                    Activity        reply     = activity.CreateReply("You are logged in. \n\n Type 'for you' to get content");
                    await connector.Conversations.ReplyToActivityAsync(reply);
                }
                else if (message == "for you")
                {
                    if (authInfo == null)
                    {
                        ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
                        Activity        reply     = activity.CreateReply("You need to login before you can load: " + activity.Text);
                        await connector.Conversations.ReplyToActivityAsync(reply);
                    }
                    else
                    {
                        var forYouList = await IhrHelper.GetForYou(authInfo);

                        CarouselCardsDialog.forYouResponse   = forYouList;
                        CarouselCardsDialog.radioStationList = null;
                        await Conversation.SendAsync(activity, () => carouselCard);
                    }
                }
                else if (message == "radio")
                {
                    ConnectorClient connector        = new ConnectorClient(new Uri(activity.ServiceUrl));
                    var             radioStationList = await IhrHelper.GetRadioStations();

                    CarouselCardsDialog.radioStationList = radioStationList;
                    CarouselCardsDialog.forYouResponse   = null;
                    await Conversation.SendAsync(activity, () => carouselCard);
                }
                else
                {
                    ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
                    Activity        reply     = activity.CreateReply("# iHR Bot Help\n\nType the following command.\n\nlogin -- You will login to iHR\n\nFor you -- Gets you the 'for you' list");
                    await connector.Conversations.ReplyToActivityAsync(reply);
                }
            }
            else
            {
                HandleSystemMessage(activity);
            }

            var response = Request.CreateResponse(HttpStatusCode.OK);

            return(response);
        }
        private static IList <Attachment> GetRadioCardsAttachments(RadioStationList radioStationList)
        {
            var contentList = new List <Attachment>();

            if (radioStationList != null && radioStationList.hits.Length > 0)
            {
                foreach (var item in radioStationList.hits)
                {
                    contentList.Add(GetHeroCard(
                                        item.name,
                                        item.responseType,
                                        item.description,
                                        new CardImage(url: IhrHelper.GetFitImage(item.responseType, item.id.ToString())),
                                        new CardAction(ActionTypes.OpenUrl, "Learn more", value: "https://azure.microsoft.com/en-us/services/storage/")));
                }
            }
            return(contentList);
        }