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