Beispiel #1
0
        IActivityHandler StartActivity(Guid activityId, IDictionary <string, object> args, string title = null)
        {
            IActivityExecutor executor = chatSession.CreateActivity(activityId);
            IActivity         activity = context.PluginLoader.GetActivity(activityId);
            IActivityHandler  handler  = activity.Coalesce(a => a.CreateInvite(executor, args));

            if (handler == null)
            {
                return(null);
            }

            if (handler is IVoiceChatHandler)
            {
                var voiceHandler = (IVoiceChatHandler)handler;
                voiceHandler.Dispatcher = Dispatcher;
                chatTextBox.AddVoiceChatSentRequest(context, voiceHandler, PrimaryBuddy.DisplayName);
            }
            else if (handler is IFileTransferHandler)
            {
                var fileHandler = (IFileTransferHandler)handler;
                fileTransfers.Add(fileHandler);
                chatTextBox.AddFileSentRequest(fileHandler);
            }
            else
            {
                chatTextBox.AddActivitySentRequest(PrimaryBuddy.DisplayName, title, handler);
            }

            handler.Start();
            chatState.ChatStarted = true;

            return(handler);
        }
        void Accept()
        {
            ShowStarted();

            session.Start();
        }