Example #1
0
    internal static Room Create(JabbR.Client.Models.Room jabbrRoom)
    {
      var room = new Room
               {
                 Name = jabbrRoom.Name,
                 IsPrivate = jabbrRoom.Private,
               };

      foreach (var jabbrUser in jabbrRoom.Users)
      {
        room.AddUser(User.Create(jabbrUser));
      }

      return room;
    }
    private void MessageReceivedCore(MessageType type, string content, User user, Room room)
    {
      var text = WebUtility.HtmlDecode(content);
      var isBotAddressed = false;

      var addressMatch = _botAddressedMatcher.Match(text);
      if (addressMatch.Success)
      {
        isBotAddressed = true;
        text = addressMatch.Groups[1].Value.Trim();
      }

      using (var session = _store.OpenSession())
      {
        var message = new Message
            {
              Text = text,
              Type = type,
            };

        var context = new PluginContext
            {
              IsBotAddressed = isBotAddressed,
              BotName = _configuration.JabbrNick,
              Room = room,
              User = user,
              RavenSession = session,
              RandomProvider = _randomProvider,
              InventoryManager = _inventoryManager,
              TextProcessor = _textProcessor,
              DateTimeProvider = _dateTimeProvider
            };

        _pluginManager.ProcessMessage(message, context, _client);

        session.SaveChanges();
      }
    }