Exemple #1
0
        public async Task <Group> RegisterAsync(String name, UserSession loggedUserSession)
        {
            Group group = new Group();

            group.Name        = name;
            group.OwnerUserId = loggedUserSession.UserId;
            group.Members     = new List <string>()
            {
                loggedUserSession.UserId
            };

            if (!StringUtils.hasText(group.Name))
            {
                throw new ValidationException("Name is required");
            }

            await groupRepository.InsertAsync(group);

            // register the topic!
            Destination destinationGroup = new Destination(DestinationType.Group, group.Id);
            await messageSender.RegisterDestinationAsync(destinationGroup);

            // register the owner as member
            await messageSender.RegisterDestinationListenerAsync(
                new Destination(DestinationType.Group, group.Id),
                new Destination(DestinationType.User, loggedUserSession.UserId));

            return(group);
        }