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