IActor IStewardManager.GetActor(IStewardDialogContext context, IConversationData conversationData)
        {
            if (conversationData.IsHandled())
            {
                return(new WatsonActor(context, conversationData));
            }

            if (conversationData.IsAskingForOwner())
            {
                return(new OwnerServiceActor(context
                                             , conversationData
                                             , ServiceResolver.Get <ISettings>()
                                             , ServiceResolver.Get <ILogManager>().GetLogger(typeof(OwnerServiceActor))));
            }

            if (conversationData.IsAskingForServiceCloudCase())
            {
                return(new ServiceCloudCaseActor(context
                                                 , conversationData
                                                 , ServiceResolver.Get <ISettings>()
                                                 , ServiceResolver.Get <ILogManager>().GetLogger(typeof(ServiceCloudCaseActor))));
            }

            return(new QnAMakerActor(context));
        }
Example #2
0
        public static void AssertIsTextDataWith(this IConversationData conversationData, string text)
        {
            Assert.IsTrue(conversationData is TextData);
            var textData = (TextData)conversationData;

            Assert.AreEqual(text, textData.Text);
        }
Example #3
0
        protected virtual async Task SendMessageToWatson(IDialogContext dialogContext, string message)
        {
            var log = GetLog();

            try
            {
                var manager = GetObject <IStewardManager>();

                var watsonContext = manager.GetWatsonContext(dialogContext);

                IConversationData conversationData = manager.GetConversationData(await GetObject <IWatsonConversationService>().SendMessage(message, watsonContext.Value));

                if (conversationData.IsEnded())
                {
                    watsonContext.Remove();
                }
                else
                {
                    watsonContext.Value = conversationData.Context;
                    watsonContext.Save();
                }

                await manager.GetActor(manager.CreateStewardDialogContext(dialogContext), conversationData).Execute();
            }
            catch (Exception exception)
            {
                log.Error($"exception.Message : {exception.Message}");
                log.Error($"exception.StackTrace : {exception.StackTrace}");
            }
        }
Example #4
0
        public static void AssertIsEntityDataWith(this IConversationData conversationData, string meta, string alias, string text)
        {
            Assert.IsTrue(conversationData is EntityData);
            var entityData = (EntityData)conversationData;

            Assert.AreEqual(alias, entityData.Alias);
            Assert.AreEqual(meta, entityData.Meta);
            Assert.AreEqual(text, entityData.Text);
        }
        public static void UpdateData(this IMutableConversationData data, IConversationData update)
        {
            data.LastLineEndTime = update.LastLineEndTime ?? data.LastLineEndTime;
            data.Lines           = update.Lines ?? data.Lines;

            if (update.Actors.Count > data.Actors.Count)
            {
                data.Actors.Resize((uint)update.Actors.Count);
            }

            for (int i = 0; i < update.Actors.Count; ++i)
            {
                data.Actors[i] = update.Actors[i] ?? data.Actors[i];
            }
        }
Example #6
0
 public ConversationTemplate() : base()
 {
     ConversationData = new ConversationData(this);
 }
 public virtual IConversationData ReadUpdateConversationData(Packet packet, IConversationData existingData, params object[] indexes)
 {
     return(existingData);
 }
 internal WatsonActor(IStewardDialogContext context, IConversationData conversationData) : base(context)
 {
     this.conversationData = conversationData;
 }
 public ServiceCloudCaseActor(IStewardDialogContext context, IConversationData conversationData, ISettings settings, ILog log) : base(context)
 {
     this.conversationData = conversationData;
     this.settings         = settings;
     this.log = log;
 }
Example #10
0
 internal OwnerServiceActor(IStewardDialogContext context, IConversationData conversationData, ISettings settings, ILog log) : base(context)
 {
     this.conversationData = conversationData;
     this.settings         = settings;
     this.log = log;
 }