public Queue <CommItem> ProcessItems(Queue <CommItem> input, ItemManager[] managers) { PureFacts pfManager = (PureFacts)managers.SingleOrDefault(x => x is PureFacts); if (pfManager == null) { SharedHelper.LogError("No Pure Fact Manager in SpeechAdaptationEN."); return(null); } List <CommItem> list = input.ToList(); if (!FlagsShared.InitialGreetingPerformed) { list.Insert(0, new CommItem { TextToSay = phrases.SayHello(), IsGreeting = true }); FlagsShared.InitialGreetingPerformed = true; } string username = pfManager.GetValueByName("UserName"); for (int i = 0; i < list.Count; i++) { //add joke announcement //if (list[i].Action == Actions.MakeSuggestion && list[i].Suggestion == Suggestions.TellJoke) //{ // CommItem item = list[i]; // item.TextToSay = AddJokeAnnouncement(item.TextToSay); // list[i] = item; //} //add song announcement if (list[i].Category == ActionsEnum.MakeSuggestion && list[i].SubCategory == SuggestionsEnum.ListenToSong) { CommItem item = list[i]; item.TextToSay = AddSongAnnouncement(item.TextToSay, OneSongAlreadyPlanned); list[i] = item; OneSongAlreadyPlanned = true; } // add user name for the interaction if (list[i].Category == ActionsEnum.AskUncertanFactQuestion || list[i].SubCategory == ActionsEnum.AskPureFactQuestionAboutUser || list[i].Category == ActionsEnum.ChangeVisualAppearance || (list[i].Category == ActionsEnum.MakeSuggestion && list[i].SubCategory != "" && list[i].SubCategory != SuggestionsEnum.TellJoke) ) { CommItem item = list[i]; item.TextToSay = AddCallByName(item.TextToSay, username); list[i] = item; } } DisablePlayMusicAftertInitialGreeting(ref list, managers); KorraModelHelper.CoupleTwoInteractionsTogether(ref list, "UserName", "BotName"); KorraModelHelper.CoupleTwoInteractionsTogether(ref list, "UserLikesVideoGames", "UserThinksVideoGameIsGoodPresent"); return(new Queue <CommItem>(list)); }