/// public IInteractionHandler <T> CreateInteractionHandler(Update interaction, Action <T> configureContext) { int senderUserId = interaction.GetOwner().Id; var session = SessionDispatcher[senderUserId]; if (session == null) { var regInfo = RegisteredUsers.FirstOrDefault(registered => registered.Id == senderUserId); if (regInfo != null) //user registered but session not oppened yet { session = SessionDispatcher.StartSession(interaction.GetOwner().ToRegisteredUser(regInfo)); } else { //start registration procedure place it in RouteInteraction with check if session is null } } var context = new T(); context.Session = session; context.User = session.User; context.Interaction = interaction; context.Connection = Connection; configureContext(context); return(InteractionRouter.RouteInteraction(context)); }
/// <summary> /// /// </summary> /// <param name="usersInfoProvider"></param> public BaseCentralDispatcher(IEnumerable <RegisteredUser> usersInfoProvider) { RegisteredUsers = new List <RegisteredUser>(usersInfoProvider); SessionDispatcher = new SessionDispatcher(); }