Example #1
0
        public DataClasses.Message GetFirstMessageFromScript(DataClasses.Script script)
        {
            if (script == null)
            {
                throw new NullReferenceException("Script is null");
            }

            foreach (DataClasses.Message message in script.Messages)
            {
                if (message.IsStart)
                {
                    return(message);
                }
            }
            return(null);
        }
Example #2
0
        public DataClasses.Script GetScriptByConversationStarter(ConversationStarter conversationStarter)
        {
            DataClasses.Script script = null;

            if (conversationStarter.ScriptName != null)
            {
                script = GetScriptByName(conversationStarter.ScriptName);
            }

            if (script == null)
            {
                script = GetScriptById(conversationStarter.ScriptId);
            }

            return(script);
        }
Example #3
0
        public Script(DataClasses.Script script)
        {
            if (script == null)
            {
                throw new NullReferenceException("script");
            }

            Id   = script.Id;
            Name = script.Name;

            if (script.Messages != null)
            {
                foreach (DataClasses.Message message in script.Messages)
                {
                    this.AddMessage(new Message(message));
                }
            }
        }
Example #4
0
        public DataClasses.Script FinalizeAndSaveScript(DataClasses.Script uploadedScript)
        {
            DataClasses.Script currentScript = GetScriptById(uploadedScript.Id);

            if (currentScript != null)
            {
                currentScript.Name = uploadedScript.Name;
                MessageService.MergeMessages(currentScript.Messages, uploadedScript.Messages);
            }
            else
            {
                currentScript = uploadedScript;
                Context.Scripts.Add(currentScript);
            }

            MessageService.FinalizeTransitioners(currentScript.Messages);

            Context.SaveChanges();
            return(currentScript);
        }
Example #5
0
        public Conversation CreateConversation(ConversationStarter conversationStarter, Person person)
        {
            Conversation conversation = GetActiveConversationForPerson(person);

            if (conversation != null)
            {
                throw new OmniBotException(person + " already has an active conversation and cannot be started on a new one.");
            }

            DataClasses.Script script = ScriptService.GetScriptByConversationStarter(conversationStarter);

            conversation = new Conversation()
            {
                Id       = -1,
                Person   = person,
                Script   = script,
                StatusId = StatusService.getInstance().conversationStatuses[StatusType.STARTED.ToString()].Id,
                Active   = true
            };

            Context.Conversations.Add(conversation);

            return(conversation);
        }