public static VmIntentResponse FromIntentResponse(IntentResponse intentResponse) { var response = new VmIntentResponse { Action = intentResponse.Action }; response.AffectedContexts = intentResponse.Contexts.Select(ctx => ctx.ToObject <VmIntentResponseContext>()).ToList(); response.Parameters = intentResponse.Parameters.Select(p => VmIntentResponseParameter.FromIntentResponseParameter(p)).ToList(); response.Messages = intentResponse.Messages.Select(msg => { if (msg.Speech == null) { return(new VmIntentResponseMessage()); } return(new VmIntentResponseMessage { Payload = msg.Payload, Type = msg.Type, Speeches = JsonConvert.DeserializeObject <List <String> >(msg.Speech) }); }).ToList(); return(response); }
public VmIntentDetail GetIntentById([FromRoute] string intentId) { var agent = new RasaAi(dc); var intent = agent.GetIntent(dc, intentId); var vm = new VmIntentDetail { Id = intent.Id, AgentId = intent.AgentId, Name = intent.Name, Events = new List <string>(), Contexts = intent.Contexts.Select(x => x.Name).ToList(), UserSays = intent.UserSays.Select(x => x.ToObject <VmIntentExpression>()).ToList(), Responses = intent.Responses.Select(x => VmIntentResponse.FromIntentResponse(x)).ToList() }; return(vm); }