本文整理汇总了C#中JabbR.ViewModels.RoomViewModel类的典型用法代码示例。如果您正苦于以下问题:C# RoomViewModel类的具体用法?C# RoomViewModel怎么用?C# RoomViewModel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
RoomViewModel类属于JabbR.ViewModels命名空间,在下文中一共展示了RoomViewModel类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UserViewModel
void INotificationService.JoinRoom(ChatUser user, ChatRoom room)
{
var userViewModel = new UserViewModel(user);
var roomViewModel = new RoomViewModel
{
Name = room.Name,
Private = room.Private,
Welcome = ConvertUrlsAndRoomLinks(room.Welcome ?? ""),
Closed = room.Closed
};
var isOwner = user.OwnedRooms.Contains(room);
// Tell all clients to join this room
foreach (var client in user.ConnectedClients)
{
Clients[client.Id].joinRoom(roomViewModel);
}
// Tell the people in this room that you've joined
Clients[room.Name].addUser(userViewModel, room.Name, isOwner).Wait();
// Notify users of the room count change
OnRoomChanged(room);
foreach (var client in user.ConnectedClients)
{
// Add the caller to the group so they receive messages
Groups.Add(client.Id, room.Name).Wait();
}
}
示例2: OnRoomChanged
private void OnRoomChanged(ChatRoom room)
{
var roomViewModel = new RoomViewModel
{
Name = room.Name,
Private = room.Private,
Closed = room.Closed
};
// Update the room count
Clients.updateRoomCount(roomViewModel, _repository.GetOnlineUsers(room).Count());
}
示例3: UserViewModel
void INotificationService.JoinRoom(ChatUser user, ChatRoom room)
{
var userViewModel = new UserViewModel(user);
var roomViewModel = new RoomViewModel
{
Name = room.Name,
Private = room.Private,
Welcome = room.Welcome ?? "",
Closed = room.Closed
};
var isOwner = user.OwnedRooms.Contains(room);
// Tell all clients to join this room
foreach (var client in user.ConnectedClients)
{
Clients.Client(client.Id).joinRoom(roomViewModel);
}
// Tell the people in this room that you've joined
Clients.Group(room.Name).addUser(userViewModel, room.Name, isOwner).Wait();
// Notify users of the room count change
OnRoomChanged(room);
foreach (var client in user.ConnectedClients)
{
Groups.Add(client.Id, room.Name);
}
}
示例4: ConvertUrlsAndRoomLinks
void INotificationService.ChangeTopic(ChatUser user, ChatRoom room)
{
bool isTopicCleared = String.IsNullOrWhiteSpace(room.Topic);
var parsedTopic = ConvertUrlsAndRoomLinks(room.Topic ?? "");
foreach (var client in user.ConnectedClients)
{
Clients[client.Id].topicChanged(isTopicCleared, parsedTopic);
}
// Create the view model
var roomViewModel = new RoomViewModel
{
Name = room.Name,
Topic = parsedTopic,
Closed = room.Closed
};
Clients[room.Name].changeTopic(roomViewModel);
}
示例5:
void INotificationService.ChangeTopic(ChatUser user, ChatRoom room)
{
bool isTopicCleared = String.IsNullOrWhiteSpace(room.Topic);
var parsedTopic = room.Topic ?? "";
Clients.Group(room.Name).topicChanged(room.Name, isTopicCleared, parsedTopic, user.Name);
// Create the view model
var roomViewModel = new RoomViewModel
{
Name = room.Name,
Topic = parsedTopic,
Closed = room.Closed
};
Clients.Group(room.Name).changeTopic(roomViewModel);
}
示例6: OnRoomChanged
private void OnRoomChanged(ChatRoom room)
{
var roomViewModel = new RoomViewModel
{
Name = room.Name,
Private = room.Private
};
// Update the room count
Clients.updateRoomCount(roomViewModel, room.Users.Online().Count());
}
示例7:
void INotificationService.AllowUser(ChatUser targetUser, ChatRoom targetRoom)
{
// Build a viewmodel for the room
var roomViewModel = new RoomViewModel
{
Name = targetRoom.Name,
Private = targetRoom.Private,
Closed = targetRoom.Closed,
Topic = targetRoom.Topic ?? String.Empty,
Count = _repository.GetOnlineUsers(targetRoom).Count()
};
// Tell this client it's allowed. Pass down a viewmodel so that we can add the room to the lobby.
Clients.User(targetUser.Id).allowUser(targetRoom.Name, roomViewModel);
// Tell the calling client the granting permission into the room was successful
Clients.Caller.userAllowed(targetUser.Name, targetRoom.Name);
}
示例8: OnRoomChanged
private void OnRoomChanged(ChatRoom room)
{
var roomViewModel = new RoomViewModel
{
Name = room.Name,
Private = room.Private,
Closed = room.Closed,
Topic = room.Topic ?? String.Empty,
Count = _repository.GetOnlineUsers(room).Count()
};
// notify all clients who can see the room
if (!room.Private)
{
Clients.All.updateRoom(roomViewModel);
}
else
{
Clients.Clients(_repository.GetAllowedClientIds(room)).updateRoom(roomViewModel);
}
}
示例9: foreach
void INotificationService.ChangeTopic(ChatUser user, ChatRoom room)
{
bool isTopicCleared = String.IsNullOrWhiteSpace(room.Topic);
var parsedTopic = TextTransform.TransformAndParseUrls(_repository, room.Topic ?? "");
foreach (var client in user.ConnectedClients)
{
Clients[client.Id].topicChanged(isTopicCleared, parsedTopic);
}
// Create the view model
var roomViewModel = new RoomViewModel
{
Name = room.Name,
Topic = parsedTopic
};
Clients[room.Name].changeTopic(roomViewModel);
}