public async Task AddToGroup(AddUserToGroupRequest request)
        {
            if (request.UserIds == null)
            {
                request.UserIds = new List <string>();
            }

            FilterDefinition <ClientGroup> builder = Builders <ClientGroup> .Filter.Eq("name", request.GroupName);

            ClientGroup clientGroup = await clientGroupRepository.FindAsync(builder);

            if (clientGroup != null)
            {
                foreach (string userId in request.UserIds)
                {
                    string _userId = clientGroup.UserIds.FirstOrDefault(x => x == userId);

                    if (string.IsNullOrEmpty(_userId))
                    {
                        clientGroup.UserIds.Add(userId);
                    }
                }

                await clientGroupRepository.UpdateAsync(clientGroup, clientGroup.Id);
            }
            else
            {
                ClientGroup group = new ClientGroup()
                {
                    Name      = request.GroupName,
                    GroupType = request.Type
                };
                group.UserIds.AddRange(request.UserIds.Distinct());

                await clientGroupRepository.AddAsync(group);
            }

            ;
        }
        public async Task <ClientGroup> EditClientGroupAsync(ClientGroup clientGroup)
        {
            var editClientGroup = await _clientGroupRepository.UpdateAsync(clientGroup);

            return(editClientGroup);
        }