public void Run(ServerCommandArgs args) { var receivedContent = Serializer.Deserialize <MessageContent>(args.Message); if (receivedContent.File == null) { throw new ArgumentNullException("File"); } if (string.IsNullOrEmpty(receivedContent.RoomName)) { throw new ArgumentException("RoomName"); } if (!RoomExists(receivedContent.RoomName, args.ConnectionId)) { return; } using (var context = ServerModel.Get()) { var room = context.Rooms[receivedContent.RoomName]; if (!room.Users.Contains(args.ConnectionId)) { ServerModel.API.SendSystemMessage(args.ConnectionId, "Вы не входите в состав этой комнаты."); return; } if (room.Files.FirstOrDefault(file => file.Equals(receivedContent.File)) == null) { room.Files.Add(receivedContent.File); } var sendingContent = new ClientFilePostedCommand.MessageContent { File = receivedContent.File, RoomName = receivedContent.RoomName }; foreach (string user in room.Users) { ServerModel.Server.SendMessage(user, ClientFilePostedCommand.Id, sendingContent); } } }
protected override void OnRun(MessageContent content, ServerCommandArgs args) { if (content.File == null) { throw new ArgumentNullException("File"); } if (string.IsNullOrEmpty(content.RoomName)) { throw new ArgumentException("RoomName"); } if (!RoomExists(content.RoomName, args.ConnectionId)) { return; } using (var context = ServerModel.Get()) { var room = context.Rooms[content.RoomName]; if (!room.Users.Contains(args.ConnectionId)) { ServerModel.Api.SendSystemMessage(args.ConnectionId, MessageId.RoomAccessDenied); return; } if (room.Files.FirstOrDefault(file => file.Equals(content.File)) == null) { room.Files.Add(content.File); } var sendingContent = new ClientFilePostedCommand.MessageContent { File = content.File, RoomName = content.RoomName }; foreach (string user in room.Users) { ServerModel.Server.SendMessage(user, ClientFilePostedCommand.CommandId, sendingContent); } } }
protected override void OnRun(MessageContent content, CommandArgs args) { if (string.IsNullOrEmpty(content.RoomName)) { throw new ArgumentException("content.RoomName"); } if (content.File == null) { throw new ArgumentNullException("content.File"); } using (var server = ServerModel.Get()) { Room room; if (!TryGetRoom(server.Chat, content.RoomName, args.ConnectionId, out room)) { return; } if (!room.IsUserExist(args.ConnectionId)) { ServerModel.Api.Perform(new ServerSendSystemMessageAction(args.ConnectionId, SystemMessageId.RoomAccessDenied)); return; } if (!room.IsFileExist(content.File.Id)) { room.AddFile(new FileDescription(content.File)); } var sendingContent = new ClientFilePostedCommand.MessageContent { File = content.File, RoomName = content.RoomName }; foreach (var user in room.Users) { ServerModel.Server.SendMessage(user, ClientFilePostedCommand.CommandId, sendingContent); } } }