public WaitingRoomResponse GetWaitingRoom()
 {
     return(new WaitingRoomResponse()
     {
         WaitingRoom = WaitingRoom.GetWaitingRoom()
     });
 }
Exemple #2
0
        public string Join(string user, string connectionId)
        {
            var existing = Players.Concat(WaitingRoom).FirstOrDefault(t => t.Name == user);

            if (existing != null)
            {
                if (existing.ConnectionId != connectionId)
                {
                    existing.ConnectionId = connectionId;
                    Message(user, $"re-joined the game");
                }
            }
            else if (string.IsNullOrEmpty(Owner))
            {
                Owner = user;
                Players.Add(CreatePlayer(user, connectionId));
            }
            else
            {
                if (Players.Count >= MaxPlayers)
                {
                    return($"Game already has maximum number of players");
                }
                WaitingRoom.Add(CreatePlayer(user, connectionId));
                Message(user, $"requested to join the game");
            }
            return(null);
        }
Exemple #3
0
 public Patient(WaitingRoom wr)
 {
     _waitingRoom   = wr;
     _numberInQueue = _waitingRoom.DrawNumber();
     Console.WriteLine($"Patient {_numberInQueue} enters the room");
     _waitingRoom.NumberChange += ReactToNumber;
 }
        private void EnterSubstate(OnlineSubstate nextSubstate)
        {
            switch (nextSubstate)
            {
            case OnlineSubstate.OnlineMenu:
                var onlineMenu = new OnlineMenu();
                Program.MainWindow.SwitchScreen(onlineMenu);
                break;

            case OnlineSubstate.OnlineBoard:
                var board = new OnlineBoardPanel();
                Program.MainWindow.SwitchScreen(board);
                break;

            case OnlineSubstate.GameCreation:
                var campaignConfig = new OnlineGameConfig();
                campaignConfig.InitConfig();
                campaignConfig.GotoConfigWindows();
                break;

            case OnlineSubstate.WaitingRoom:
                var waitingRoom = new WaitingRoom();
                Program.MainWindow.SwitchScreen(waitingRoom);
                break;
            }
            _currentSubState = nextSubstate;
        }
Exemple #5
0
        public string Admit(string currentUser, string name)
        {
            if (IsStarted)
            {
                return("Game has already started!");
            }
            if (currentUser != Owner)
            {
                return("Only game owner can admit users!");
            }
            if (Players.Count >= MaxPlayers)
            {
                return($"Maximum number of players is {MaxPlayers}");
            }
            var player = WaitingRoom.FirstOrDefault(t => t.Name == name);

            if (player == null)
            {
                return($"Player not found: {name}");
            }

            WaitingRoom.Remove(player);
            player.Order = Players.Count;
            Players.Add(player);
            Message(null, $"{player} was admitted");
            return(null);
        }
 public HospitalController(
     ILogger <HospitalController> logger,
     List <DoctorCabin> doctorcabins,
     WaitingRoom waitingroom,
     IConfiguration configuration,
     List <DoctorsModel> doctorsmodels,
     IHubContext <NotificationHub, INotificationHub> notify,
     IConfiguration config, IPatientRepository patientRepository,
     IDoctorRepository doctorRepository,
     IWebHostEnvironment hostEnvironment,
     FewaDbContext fewaDbContext)
 {
     FewaDbContext       = fewaDbContext;
     _patientRepository  = patientRepository;
     _doctorsmodels      = doctorsmodels;
     Configuration       = configuration;
     _logger             = logger;
     _doctorcabins       = doctorcabins;
     _waitingroom        = waitingroom;
     _doctorRepository   = doctorRepository;
     idletime            = Convert.ToInt32(configuration["IdleTime"]);
     _notify             = notify;
     _config             = config;
     _hostingEnvironment = hostEnvironment;
 }
Exemple #7
0
        public static void HandleLeaveSession(Packet packet)
        {
            CmdLeaveSession cmd = new CmdLeaveSession(packet);

            if (packet.Sender.Character.Status.GetState() == typeof(WaitingRoom))
            {
                WaitingRoom room = packet.Sender.Character.Status.GetObject <WaitingRoom>();
                room.Leave(packet.Sender);
                var ack3 = new LeaveSessionAck()
                {
                    Token = packet.Sender.GetIdentifier()
                };
                packet.SendBack(ack3.CreatePacket());


                var ack1 = new ClientPlayerLeftSessionAck()
                {
                    Token = packet.Sender.GetIdentifier()
                };
                room.Broadcast(ack1.CreatePacket());

                var ack2 = new TeacherPlayerLeftSessionAck()
                {
                    StudentName = packet.Sender.Character.Name
                };
                room.Owner.Send(ack2.CreatePacket());
                return;
            }
            else
            {
                packet.SendBackError(21);
                return;
            }
        }
Exemple #8
0
        internal async Task TakeDamage(int soul)
        {
            for (int i = 0; i < soul; i++)
            {
                var tmp = Library.Draw();
                ResolutionZone.Enqueue(tmp);
                await CheckInterrupts();

                if (tmp is IWSClimaxCard)
                {
                    while (ResolutionZone.Count > 0)
                    {
                        WaitingRoom.Put(ResolutionZone.Dequeue());
                    }
                    return;
                }
            }

            while (ResolutionZone.Count > 0)
            {
                Clock.Put(ResolutionZone.Dequeue());
                await CheckInterrupts();
            }

            await RefreshPoint();
        }
Exemple #9
0
        public LobbyPageViewModel(LobbyPage page)
        {
            _page = page;
            _page.DisplayPlayers();

            DisplayGameCreationDialogCommand = new RelayCommand <object>((o) => DisplayGameCreationDialog(), (o) => true);
            JoinLobbyCommand = new RelayCommand <object>(async(o) => await JoinLobby(), (o) => true);

            Messenger.Default.Register(this, delegate(string msg)
            {
                if (!msg.StartsWith(nameof(GameGridElementViewModel.IsSelectedGame)))
                {
                    return;
                }

                foreach (GameGridElement g in Lobbies.Where(g => msg.EndsWith(((GameGridElementViewModel)g.DataContext).WaitingRoom.Channel.id)))
                {
                    foreach (GameGridElement gg in Lobbies)
                    {
                        ((GameGridElementViewModel)gg.DataContext).UnSelectGame();
                    }

                    IsGameSelected = true;
                    _currentSelectedWaitingRoom = ((GameGridElementViewModel)g.DataContext).WaitingRoom;
                }
            });
        }
 public PracticeController(
     ILogger <PracticeController> logger,
     List <ProviderCabin> providerCabins,
     WaitingRoom waitingroom,
     IConfiguration configuration,
     List <Provider> providers,
     IHubContext <NotificationHub,
                  INotificationHub> notify,
     IConfiguration config,
     IPatientRepository patientRepository,
     IProviderRepository providerRepository,
     IWebHostEnvironment hostEnvironment,
     FewaDbContext fewaDbContext,
     IHttpContextAccessor HttpContextAccessor)
 {
     FewaDbContext       = fewaDbContext;
     _patientRepository  = patientRepository;
     _providers          = providers;
     Configuration       = configuration;
     _logger             = logger;
     _providerCabins     = providerCabins;
     _waitingroom        = waitingroom;
     _providerRepository = providerRepository;
     idletime            = Convert.ToInt32(configuration["IdleTime"]);
     _notify             = notify;
     _config             = config;
     accessor            = HttpContextAccessor;
     _hostingEnvironment = hostEnvironment;
 }
 public NotificationHub(WaitingRoom _waitingroom,
                        List <Doctor> _doctors,
                        List <DoctorCabin> _doctorcabins)
 {
     waitingroom  = _waitingroom;
     doctors      = _doctors;
     doctorcabins = _doctorcabins;
 }
 public static void Initialize(Employee inEmployee)
 {
     if (_employee == null)
     {
         _employee    = inEmployee;
         _waitingRoom = inEmployee.WaitingRoom;
     }
 }
Exemple #13
0
        public ActionResult DeleteConfirmed(int id)
        {
            WaitingRoom waitingRoom = db.WaitingRooms.Find(id);

            db.WaitingRooms.Remove(waitingRoom);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public HomeController(ILogger <HomeController> logger,
                       DoctorCabin doctorcabin, WaitingRoom waitingroom, IConfiguration configuration)
 {
     Configuration = configuration;
     _logger       = logger;
     _doctorcabin  = doctorcabin;
     _waitingroom  = waitingroom;
     idletime      = Convert.ToInt32(configuration["IdleTime"]);
 }
        public Server()
        {
            // Implement IMessageable
            ComponentType    = MessageableComponent.BaseServer;
            ComponentClients = new List <ServerConnection>();

            // Create waiting room for connections
            _waitingRoom = new WaitingRoom(MAX_ROOMS);
        }
        public void RespondBoardRespondingToRetries()
        {
            //Create a SubSystem with dummy factory.
            dummyConversationFactory dumConvoFact = new dummyConversationFactory();
            WaitingRoom    waitingRoom            = new WaitingRoom();
            PlayerAppState playerAppState         = new PlayerAppState(waitingRoom);
            SubSystem      commSubSys             = new SubSystem(dumConvoFact, playerAppState);
            //Note: we dont want to start the threads of the subSystem.

            //Create Conversation
            RespondTurns respondTurnsConvo = new RespondTurns();

            respondTurnsConvo.SubSystem      = commSubSys;
            respondTurnsConvo.RemoteEndPoint = new IPEndPoint(IPAddress.Parse("1.1.1.1"), 1111);

            //Create fake incoming env.
            Envelope IncomingEnv = new Envelope(new ResultMessage(true, 1, true, true, false, -1, -1, new Identifier(0, 1), new Identifier(0, 1)), new IPEndPoint(IPAddress.Parse("1.1.1.1"), 1111), new IPEndPoint(IPAddress.Parse("2.2.2.2"), 2222), false);

            //Set the incoming env.
            respondTurnsConvo.IncomingEnvelope = IncomingEnv;
            respondTurnsConvo.recievedMessagesDict.TryAdd(IncomingEnv.Message.MessageNumber.ToString(), IncomingEnv);

            //Start the conversation
            respondTurnsConvo.Launch();

            Thread.Sleep(500);

            //check the outgoing message.
            Assert.IsTrue(commSubSys.outQueue.Count >= 1);

            //Give a duplicate message.
            respondTurnsConvo.Process(IncomingEnv);

            Thread.Sleep(500);

            //check the outgoing message.
            Assert.IsTrue(commSubSys.outQueue.Count >= 2);

            //get count of outgoing messages for later.
            int countOfOutGoingMessages = commSubSys.outQueue.Count;

            //Wait for timeout time
            Thread.Sleep(2000);

            //Check that there are no new messages.
            Assert.IsTrue(countOfOutGoingMessages == commSubSys.outQueue.Count);

            //Cheack that thread has ended.
            respondTurnsConvo.Process(IncomingEnv); //If thread was running outgoing messages should go up.
            Thread.Sleep(500);
            Assert.IsTrue(countOfOutGoingMessages == commSubSys.outQueue.Count);

            //Close the communicators for next test.
            commSubSys.udpcomm.closeCommunicator();
            commSubSys.tcpcomm.closeCommunicator();
        }
Exemple #17
0
 public ActionResult Edit([Bind(Include = "Id,Name")] WaitingRoom waitingRoom)
 {
     if (ModelState.IsValid)
     {
         db.Entry(waitingRoom).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(waitingRoom));
 }
Exemple #18
0
        private void button3_Click(object sender, EventArgs e)
        {
            WaitingRoom.AssignPlayersToGames();
            var context = GlobalHost.ConnectionManager.GetHubContext <ServerHub>();

            foreach (string connID in Program.PlayingGames.SelectMany(playingGame => playingGame.playersID))
            {
                context.Clients.Client(connID).StartGameMsg("start");
            }
        }
Exemple #19
0
 public NotificationHub(WaitingRoom _waitingroom,
                        List <Provider> _providers,
                        List <ProviderCabin> _providerCabins,
                        IHostingEnvironment hostingEnvironment)
 {
     waitingroom         = _waitingroom;
     providers           = _providers;
     providerCabins      = _providerCabins;
     _hostingEnvironment = hostingEnvironment;
 }
Exemple #20
0
        static void Main(string[] args)
        {
            var wr = new WaitingRoom();
            var p0 = new Patient(wr);
            var p1 = new Patient(wr);
            var p2 = new Patient(wr);
            var p3 = new Patient(wr);

            wr.RunWaitingRoom();
        }
        public WaitingRoomGamesResponse LeaveCurrentGame([FromUri] int playerId)
        {
            WaitingRoom waitingRoom = WaitingRoom.GetWaitingRoom();

            waitingRoom.LeaveCurrentGame(playerId);
            waitingRoom.SaveWaitingRoom();
            return(new WaitingRoomGamesResponse()
            {
                Games = waitingRoom.Games
            });
        }
        public List <MedicalExamination> GetAllByWaitingRoom(int id)
        {
            WaitingRoom waitingRoom = new WaitingRoom();

            foreach (MedicalExamination m in ((IMedicalExaminationRepository)repository).GetAllByWaitingRoom(id))
            {
                waitingRoom.AddExamination(m);
            }
            //return ((IMedicalExaminationRepository)repository).GetAllByWaitingRoom(id);
            return((List <MedicalExamination>)waitingRoom.Examinations);
        }
        public WaitingRoomResponse PlayerReady([FromBody] PlayerReadyrequest request)
        {
            WaitingRoom waitingRoom = WaitingRoom.GetWaitingRoom();

            waitingRoom.PlayerReady(request);
            waitingRoom.SaveWaitingRoom();
            return(new WaitingRoomResponse()
            {
                WaitingRoom = waitingRoom
            });
        }
        public WaitingRoomResponse AddChatPlayer([FromBody] AddChatPlayerRequest request)
        {
            WaitingRoom waitingRoom = WaitingRoom.GetWaitingRoom();

            waitingRoom.AddPlayer(request);
            waitingRoom.SaveWaitingRoom();
            return(new WaitingRoomResponse()
            {
                WaitingRoom = waitingRoom
            });
        }
Exemple #25
0
        public void AddNewMedicalExamination(IAddMedicalExaminationView inForm)
        {
            _form = inForm;

            List <ExaminationType> typesList = _serviceFactory.CreateExaminationTypeService(_unitOfWork).GetAll();

            if (inForm.ShowViewModal(typesList))
            {
                try
                {
                    bool            emergency       = inForm.Emergency;
                    ExaminationType examinationType = inForm.ExaminationType;
                    string          PatientId       = inForm.PatientId;
                    string          FirstName       = inForm.PatientFirstName;
                    string          LastName        = inForm.PatientLastName;
                    string          OIB             = inForm.PatientOIB;
                    string          address         = inForm.Address;
                    string          city            = inForm.City;
                    string          zipCode         = inForm.ZipCode;
                    DateTime        DateOfBirth;
                    DateTime.TryParseExact(inForm.PatientDateOfBirth, "dd.MM.yyyy", null, DateTimeStyles.None, out DateOfBirth);

                    var patientService = _serviceFactory.createPatientService(_unitOfWork);

                    var patient = patientService.GetByOIB(OIB);

                    if (patient == null)
                    {
                        patient = patientService.Add(FirstName, LastName, OIB, DateOfBirth, PatientId, address, city, zipCode);
                    }

                    Employee    employee    = LoggedIn.GetEmployee();
                    WaitingRoom waitingRoom = LoggedIn.GetWaitingRoom();

                    IMedicalExaminationService medicalExaminationService = _serviceFactory.createMedicalExaminationService(_unitOfWork);

                    MedicalExamination medicalExamination = medicalExaminationService.Add(patient, examinationType, emergency);
                    //WaitingRoom waitingRoom = LoggedIn.GetEmployee().WaitingRoom;

                    //var service = _serviceFactory.CreateWaitingRoomService(_unitOfWork);

                    //WaitingRoom wr = service.GetById(waitingRoom.Id);
                    //WaitingRoom wr = new WaitingRoom(new List<MedicalExamination>(), "Kardio");
                    //wr.AddExamination(medicalExamination);
                    //service.Add(wr);

                    NotifyObservers();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.StackTrace);
                }
            }
        }
Exemple #26
0
 public HospitalController(ILogger <HospitalController> logger,
                           List <DoctorCabin> doctorcabins, WaitingRoom waitingroom,
                           IConfiguration configuration, List <Doctor> doctors)
 {
     _doctors      = doctors;
     Configuration = configuration;
     _logger       = logger;
     _doctorcabins = doctorcabins;
     _waitingroom  = waitingroom;
     idletime      = Convert.ToInt32(configuration["IdleTime"]);
 }
        public WaitingRoomGamesResponse CreateNewGame([FromBody] CreateGameRequest request)
        {
            WaitingRoom waitingRoom = WaitingRoom.GetWaitingRoom();

            waitingRoom.AddGame(request);
            waitingRoom.SaveWaitingRoom();
            return(new WaitingRoomGamesResponse()
            {
                Games = waitingRoom.Games
            });
        }
        public WaitingRoomPlayersResponse UpdatePlayer(UpdatePlayerRequest request)
        {
            WaitingRoom waitingRoom = WaitingRoom.GetWaitingRoom();

            waitingRoom.UpdatePlayer(request);
            waitingRoom.SaveWaitingRoom();
            return(new WaitingRoomPlayersResponse()
            {
                Players = waitingRoom.Players
            });
        }
        public WaitingRoomPlayersResponse RemovePlayer([FromUri] string socketId)
        {
            WaitingRoom waitingRoom = WaitingRoom.GetWaitingRoom();

            waitingRoom.RemovePlayer(socketId);
            waitingRoom.SaveWaitingRoom();
            return(new WaitingRoomPlayersResponse()
            {
                Players = waitingRoom.Players
            });
        }
        public WaitingRoomGamesResponse JoinGame([FromUri] JoinGameRequest request)
        {
            WaitingRoom waitingRoom = WaitingRoom.GetWaitingRoom();

            waitingRoom.JoinGame(request);
            waitingRoom.SaveWaitingRoom();
            return(new WaitingRoomGamesResponse()
            {
                Games = waitingRoom.Games
            });
        }