public async Task HandleEventAsync(HookEventToPublish <GitPullRequestMergeCommitCreatedPayload> eventData) { var payload = eventData.Payload; var users = await IdentityToChatUserMapper.GetUsersAsync( payload.ResourceContainers.Collection.BaseUrl, payload.Resource.Reviewers.Select(x => x.Id).ToArray() ); // TODO: Determine which users / channels to notify // Consider making this configurable (Collection-to-Channel, Project-to-Channel; Team-to-Channel) var avatarId = IdentityImageProvider.GetImageId(payload.Resource.CreatedBy.ImageUrl); var avatarUri = await ImageUriFactory.GetImageUriAsync(AzureDevOpsConstants.ReceiverName, avatarId); var messageTemplate = new MessageDto { Text = payload.Message.Markdown, Alias = payload.Resource.CreatedBy.DisplayName, Avatar = avatarUri.AbsoluteUri }; foreach (var user in users) { messageTemplate.Channel = $"@{user.Username}"; await RocketChatClient.SendMessage(messageTemplate); } }
public async void RocketChatTest() { // Instantiate the client. var rc = new RocketChatClient(RocketChatHost, RocketChatPort, RocketChatSSL); await rc.Connect(RocketChatUser, RocketChatPass); // Subscribe to events. rc.Rooms.UserStartedTyping += (username, room) => Debug.WriteLine("User {0} is typing in room {1}", username, rc.Rooms[room].Name); rc.Rooms.UserStoppedTyping += (username, room) => Debug.WriteLine("User {0} is no longer typing in room {1}", username, rc.Rooms[room].Name); rc.Rooms.MessageReceived += (room, message) => Debug.WriteLine("New message received in room {0} from {1}: {2}", rc.Rooms[room].Name, message.User.Username, message.Text); // Iterate over the rooms. foreach (var room in rc.Rooms.Keys) { var rm = rc.Rooms[room]; var epoch = new DateTime(1970, 1, 1); var result = await rm.LoadHistory(epoch, 100, epoch); Debug.WriteLine("Got: {0} messages in the room {1}", rm.Name, result.Count); if (rm.Name != null) { Debug.WriteLine("Room Id: {0} Name: {1}", rm.Id, rm.Name); } } // Sleep indefinitely to stop the test from aborting. while (true) { Thread.Sleep(100); } }
public MainClass () { System.Console.WriteLine ("Starting Rocket.Chat .NET Client..."); isLoggedIn = false; chatClient = RocketChatClient.WithUrl ("ws://192.168.99.100:3000/websocket").Build (); }
public MainClass() { System.Console.WriteLine("Starting Rocket.Chat .NET Client..."); isLoggedIn = false; chatClient = RocketChatClient.WithUrl("ws://192.168.99.100:3000/websocket").Build(); }