private IPassiveMessage ProducePassiveMessageCore(XDocument rawXml, HubContext context, IDictionary <string, string> payloads) { var typeIdentity = _typeDetector.Detecting(rawXml); var typePicker = new TypePicker(context.GetMessageTypes()); var targetType = typePicker.Picking(typeIdentity); if (targetType == null) { Log.Logger.Debug("unrecognized message type. system doesn't register this type: {0}"); return(new AsyncPassiveMessage()); } var message = (WechatPushingMessage)_xmlSerializer.Deserialize(rawXml, targetType); var handlerPicker = new HandlerPicker(context.GetMessageHandlers()); var handler = handlerPicker.Picking(message); if (handler == null) { Log.Logger.Debug("cannot find proper message handler."); return(new AsyncPassiveMessage()); } var messageContext = BuideMessageContext(context, typeIdentity, rawXml, message); var safeHandler = new SafeMessageHandler(handler); return(safeHandler.HandleMessage(message, messageContext)); }
private void AddTypeButton_Click(object sender, EventArgs e) { _typePicker = new TypePicker(); if (_typePicker.ShowDialog() == DialogResult.OK) { if (DirectoriesListBox.SelectedItem != null) { string dir = DirectoriesListBox.SelectedItem.ToString(); _extensions[dir].Add("." + _typePicker.typeInput.Text); FileTypesListBox.Items.Clear(); FileTypesListBox.Items.AddRange(_extensions[dir].ToArray()); //if (_extensions[dir].Count > 0) // FileTypesListBox.SelectedIndex = 0; } } _typePicker.Dispose(); _typePicker = null; }
private void TypeTapped(object sender, EventArgs e) { TypePicker.Focus(); }