private Room InitRoom(IRoomInfo roomInfo) { Room room = new Room(); room.Id = Guid.NewGuid(); room.Name = roomInfo.RoomName; room.Server = roomInfo.Server; room.Nickname = roomInfo.Nickname; return room; }
public async Task <Room> CreateRoom(IRoomInfo info) { var room = new Room { Name = info.Name, Description = info.Description }; context.Rooms.Add(room); await context.SaveChangesAsync(); return(room); }
public static Room BuildFromInfo(IRoomInfo roomInfo) { Room room = new Room( roomInfo.Number, roomInfo.Floor, roomInfo.Coordinates, roomInfo.Length, roomInfo.Width); Doors doors = new Doors(); doors.SetStartPoint(roomInfo.Doors.StartPoint); doors.SetEndPoint(roomInfo.Doors.EndPoint); room.SetDoors(doors); return(room); }
public DestinationRoomController(MediaController mediaController, IViewModelFactory viewModelFactory, IRoomInfo roomInfo, IConfigurationService configurationService, RoomViewModel sourceRoomViewModel, Guid sessionId) : base(viewModelFactory, roomInfo, configurationService) { RoomVm.MediaController = mediaController; LocalUserVm = viewModelFactory.GetViewModel <LocalUserViewModel>(); var sessionCollectionViewModel = viewModelFactory.GetViewModel <SessionCollectionViewModel>(); sourceRoomViewModel.RoomName = sourceRoomViewModel.RoomName; sourceRoomViewModel.SessionId = sessionId; sourceRoomViewModel.UserTag = sourceRoomViewModel.UserTag; sourceRoomViewModel.Model = sourceRoomViewModel.Model; sourceRoomViewModel.SessionVm = sessionCollectionViewModel.ViewModels.First(s => s.Model.SessionId == sessionId); }
private void ProcessEnterRoomRSP(EnterRoomRSP message, ClientRecord record) { if (message.RoomType == RoomType.PineRoom) { return; } bool isTournament = TournamentRoomTypes.Contains(message.RoomType); IRoomInfo roomInfo = isTournament ? (IRoomInfo)message.SngRoomInfo : (IRoomInfo)message.RoomInfo; record.RoomID = roomInfo.RoomID; record.TableID = message.TableStatus.Tid; record.IsOmaha = message.RoomType == RoomType.OmahaRoom; record.RoomName = roomInfo.RoomName.Length > 0 ? roomInfo.RoomName : roomInfo.TempID; record.Ante = roomInfo.Ante; record.BigBlind = roomInfo.Blind; record.MaxPlayers = roomInfo.SeatNum; record.IsTournament = isTournament; if (isTournament) { var utcNow = DateTime.UtcNow; long startTimestamp = message.RoomType == RoomType.MttRoom ? message.MttRoomInfo.MttStartTime : DateTimeToTimestamp(utcNow); record.TournamentID = $"{record.RoomID}-{startTimestamp}"; record.TournamentName = $"{record.RoomName}"; record.TournamentBuyIn = message.SngRoomInfo.BuyIn; record.TournamentReBuy = message.MttRoomInfo.ReBuyIn; record.TournamentAddOn = message.MttRoomInfo.AddOnBuyIn; record.TournamentBounty = message.MttRoomInfo.HunterReward; record.TournamentHasFixedRewards = message.SngRoomInfo.FixedReward; record.TournamentStartDate = message.RoomType == RoomType.MttRoom ? TimestampToDateTime(message.MttRoomInfo.MttStartTime) : utcNow; } foreach (var seat in message.TableStatus.Seat.Where(s => s.Player != null)) { record.Players[seat.SeatID] = UserBriefToRoomPlayer(seat.Player); } }
public SourceRoomController(IViewModelFactory viewModelFactory, IRoomInfo roomInfo, IConfigurationService configurationService, MediaTest roomPage) : base(viewModelFactory, roomInfo, configurationService) { // Set the roomViewModel initial values. var rnd = new Random(); var sourceSsrcId = (ushort)rnd.Next(ushort.MinValue, ushort.MaxValue); var sourceConfig = new MediaConfig { MediaServerHost = DataGlobals.MediaServerHost, MediaServerControlPort = Constants.DefaultMediaServerControlPort, MediaServerStreamingPort = Constants.DefaultMediaServerStreamingPort, LocalSsrcId = sourceSsrcId, CodecFactory = new CodecFactory(AudioFormat.Default), ExpectedAudioLatency = 250 }; var sourceMediaStats = new MediaStatistics(); var sourceMediaEnvironment = new MediaEnvironment(sourceMediaStats); var sourceMediaConnection = new RtpMediaConnection(sourceConfig, sourceMediaStats); var vqc = new VideoQualityController(sourceConfig.LocalSsrcId); _sourceMediaController = new SourceMediaController(sourceConfig, sourceMediaStats, sourceMediaEnvironment, sourceMediaConnection, vqc); RoomVm.RoomName = Constants.DefaultRoomName; RoomVm.MediaController = _sourceMediaController; _sourceMediaController.InputAudioVisualizer = roomPage.audioVisualizer; // Setup the local session. var room = new Room { Name = Constants.DefaultRoomName, Sessions = new ObservableCollection <Session>() }; var user = new RegisteredUser { UserId = Guid.NewGuid(), UserTag = "smithkl42", UserName = "******" }; var session = new Session { SessionId = Guid.NewGuid(), SsrcId = _sourceMediaController.LocalSsrcId, User = user }; var sessionViewModel = viewModelFactory.GetViewModel <SessionViewModel>(vm => vm.Model.SessionId == session.SessionId); sessionViewModel.Model = session; _sessionCollectionViewModel = viewModelFactory.GetViewModel <SessionCollectionViewModel>(); RoomVm.SessionVm = sessionViewModel; _sessionCollectionViewModel.ViewModels.Add(sessionViewModel); RoomVm.SessionId = RoomVm.SessionVm.Model.SessionId; var owner = user; owner.SharedFiles = new ObservableCollection <SharedFile>(); room.SharedFiles = owner.SharedFiles; room.User = owner; RoomVm.UserTag = owner.UserTag; room.UserId = owner.UserId; RoomVm.Model = room; LocalUserVm.Model = owner; LocalUserVm.UserId = owner.UserId; // Add the destination sessions. var codecFactory = new DestinationCodecFactory(); for (int i = 0; i < RemoteSessionCount; i++) { var destinationSsrcId = (ushort)rnd.Next(ushort.MinValue, ushort.MaxValue); var config = new MediaConfig { MediaServerHost = DataGlobals.MediaServerHost, MediaServerControlPort = Constants.DefaultMediaServerControlPort, MediaServerStreamingPort = Constants.DefaultMediaServerStreamingPort, LocalSsrcId = destinationSsrcId, CodecFactory = codecFactory, ExpectedAudioLatency = 250 }; var mediaStatistics = new MediaStatistics(); var mediaEnvironment = new MediaEnvironment(mediaStatistics); var mediaConnection = new RtpMediaConnection(config, mediaStatistics); var destinationVqc = new VideoQualityController(config.LocalSsrcId); var destinationMediaController = new DestinationMediaController(config, mediaStatistics, mediaEnvironment, mediaConnection, destinationVqc); var remoteSession = new Session { SessionId = Guid.NewGuid(), SsrcId = destinationMediaController.LocalSsrcId }; //todo: create sessionViewModel, add it to SessionCollectionViewModel _sourceMediaController.RegisterRemoteSession((ushort)(remoteSession.SsrcId)); remoteSession.User = new RegisteredUser { UserId = Guid.NewGuid(), UserTag = "smithkl42", UserName = "******" }; room.Sessions.Add(remoteSession); var destinationRoomPage = new DestinationRoomPage(); destinationMediaController.OutputAudioVisualizer = destinationRoomPage.audioVisualizer; // var newViewModelFactory = new ViewModelFactory(RoomService, MessageService, ViewLocator); var destinationController = new DestinationRoomController(destinationMediaController, viewModelFactory, new TestRoomInfo(), configurationService, RoomVm, remoteSession.SessionId); destinationMediaController.Connect(RoomVm.Model.RoomId.ToString()); // Store references to the created objects. _destinationMediaControllers[remoteSession.SessionId] = destinationMediaController; _destinationRoomPages[remoteSession.SessionId] = destinationRoomPage; _destinationRoomControllers[remoteSession.SessionId] = destinationController; } // We have to wait until all the sessions have been created before we can register them with their media controllers and initialize their pages. foreach (Guid sessionId in _destinationRoomControllers.Keys) { var destinationRoomController = _destinationRoomControllers[sessionId]; var destinationPage = _destinationRoomPages[sessionId]; destinationPage.Initialize(destinationRoomController); } }
public void AddRoom(IRoomInfo roomInfo) { var room = InitRoom(roomInfo); Client.Rooms.Add(room); }