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