/// <summary> /// Returns the only instance of skill factory. /// </summary> /// <returns></returns> public static SkillFactory GetInstance(ITurnContext context, IConversationStateProvider conversationStateProvider) { if (_factory == null) { lock (padlock) { // _conversationStateProvider = conversationStateProvider; // _factory = _factory ?? new SkillFactory(); // Check, if skill set is empty if (_skills.Count == 0) { var knownSkills = new[] { "greetings", "retorts" }; //, "questions" }; var greetingInstance = Greetings.Instance(context, conversationStateProvider); var retortsInstance = Retorts.Instance(context, conversationStateProvider); //var questionsInstance = Questions.Instance(context, conversationStateProvider); // _skills.Add("greetings", greetingInstance); _skills.Add("retorts", retortsInstance); //_skills.Add("questions", questionsInstance); } } } return(_factory); }
/// <summary> /// Obtains instance of this class with passing context and state. /// </summary> /// <param name="context">current context</param> /// <param name="conversationStateProvider">passed state provider</param> /// <returns>instance of skill</returns> public ISkill GetInstance(ITurnContext context, IConversationStateProvider conversationStateProvider) { if (_instance == null) { _instance = new Images(); } return(_instance); }
/// <summary> /// Creates new instance of greetings skill to process given phrase. /// </summary> /// <param name="context">current dialog context</param> /// <param name="conversationStateProvider">provider for passing the state from context</param>> private Greetings(ITurnContext context, IConversationStateProvider conversationStateProvider) { _state = conversationStateProvider.GetConversationState <BrainState>(context); // Create new DialogUtils to hide logic in sub-methods if (_dialogUtils == null) { _dialogUtils = new DialogUtils(context, conversationStateProvider); } }
/// <summary> /// Creates new instance of skill. /// </summary> /// <param name="context">current dialog context</param> /// <param name="conversationStateProvider">provider for passing the state from context</param>> /// <returns>instance of unknowns</returns> public static Unknowns Instance(ITurnContext context, IConversationStateProvider conversationStateProvider) { if (_instance == null) { lock (padlock) if (_instance == null) { _instance = new Unknowns(context, conversationStateProvider); } } return(_instance); }
/// <summary> /// Creates new instance of skill. /// </summary> /// <param name="context">current dialog context</param> /// <param name="conversationStateProvider">provider for passing the state from context</param>> /// <returns>instance of retorts</returns> public static Retorts Instance(ITurnContext context, IConversationStateProvider conversationStateProvider) { if (_instance != null) { return(_instance); } // Start initializing an instance lock (padlock) if (_instance == null) { _instance = new Retorts(context, conversationStateProvider); } return(_instance); }
/// <summary> /// Creates new instance of Utils for Dialogs. /// </summary> /// <param name="context">current dialog context</param> /// <param name="conversationStateProvider">provider for passing the state from context</param>> public DialogUtils(ITurnContext context, IConversationStateProvider conversationStateProvider) { if (context == null) { throw new ArgumentNullException("context", "context is null."); } if (conversationStateProvider == null) { throw new ArgumentNullException("conversationStateProvider", "conversationStateProvider is null."); } if (_state == null) { _state = conversationStateProvider.GetConversationState <BrainState>(context); } // initLocalizedAnswers(); }
/// <summary> /// Returns wanted skill, if there exist one with such a name. /// </summary> /// <param name="key">skill's name</param> /// <param name="context">used context</param> /// <param name="conversationStateProvider">given conversation provider to access BrainState</param> /// <returns>wanted skill, if found, null otherwise</returns> public ISkill GetSkill(string key, ITurnContext context, IConversationStateProvider conversationStateProvider) { // if it does exist, read it and return it if (_skills.TryGetValue(key, out ISkill instance)) { instance = _skills[key]; } else { // First time - call to init an instance switch (key) { // TODO if would be nice, if this would be classfiles processor on directory - not to type every single skill in factory case "greetings": instance = Greetings.Instance(context, conversationStateProvider); break; case "retorts": instance = Retorts.Instance(context, conversationStateProvider); break; /*case "questions": * instance = Questions.Instance(context, conversationStateProvider); * break;*/ case "unknowns": instance = Unknowns.Instance(context, conversationStateProvider); break; } // If obtained instance, add it to known skills if (instance != null) { _skills.Add(key, instance); } } return(instance); }
/// <summary> /// Creates new instance of skill. /// </summary> /// <param name="context">current dialog context</param> /// <param name="conversationStateProvider">provider for passing the state from context</param>> /// <returns>instance of retorts</returns> public ISkill GetInstance(ITurnContext context, IConversationStateProvider conversationStateProvider) => Instance(context, conversationStateProvider);
/// <summary> /// Creates new instance of retorts skill to process given phrase. /// </summary> /// <param name="context">current dialog context</param> /// <param name="conversationStateProvider">provider for passing the state from context</param>> private Retorts(ITurnContext context, IConversationStateProvider conversationStateProvider) { _state = conversationStateProvider.GetConversationState <BrainState>(context); // Create new DialogUtils to hide logic in sub-methods InitItems(); }
public EchoBot(IConversationStateProvider conversationStateProvider) => _conversationStateProvider = conversationStateProvider;
/// <summary> /// Creates new instance of retorts skill to process given phrase. /// </summary> /// <param name="context">current dialog context</param> /// <param name="conversationStateProvider">provider for passing the state from context</param>> private Unknowns(ITurnContext context, IConversationStateProvider conversationStateProvider) { _state = conversationStateProvider.GetConversationState <BrainState>(context); // Assures, that list of items is not null InitItems(); }
/// <summary> /// Creates new instance of Utils for calling system. /// </summary> /// <param name="context">current dialog context</param> /// <param name="conversationStateProvider">provider for passing the state from context</param>> public SystemUtils(ITurnContext context, IConversationStateProvider conversationStateProvider) { _state = conversationStateProvider.GetConversationState <BrainState>(context); }