Exemple #1
0
        public async Task <ActionResult <Session> > PostSession(OnlineSession onlineSession)
        {
            _context.OnlineSessions.Add(onlineSession);
            await _context.SaveChangesAsync();

            return(RedirectToAction("GetSession", new { id = onlineSession.Id }));
        }
Exemple #2
0
        public async Task <IActionResult> PutSession(int id, OnlineSession onlineSession)
        {
            if (id != onlineSession.Id)
            {
                return(BadRequest());
            }

            _context.Entry(onlineSession).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SessionExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public static OamDeviceWatcherProxy GetOamDeviceWatcherProxy(this OnlineSession session)
        {
            OamDeviceWatcher watcher = Reflector.GetInstanceFieldByName(session,
                                                                        "OamDeviceWatcher",
                                                                        ReflectionWays.SystemReflection)
                                       as OamDeviceWatcher;
            OamDeviceWatcherProxy proxy = new OamDeviceWatcherProxy(watcher);

            return(proxy);
        }
Exemple #4
0
        /// <summary>
        /// Called after EndGame
        /// </summary>
        public void Exit()
        {
            NativeFunction.arreterSons();
            cts.Cancel();
            OnlineSession.TerminateSession();

            _windowOpengl?.HideWinform();

            Program.MainWindow.Show();
        }
Exemple #5
0
        public OnlineGame(IntegratedOpenGl.Mode mode, GameModel model)
        {
            _mode = mode;
            Model = model;
            OnlineSession.InitializeSession(model);

            var playerPos = Model.ParticipantsHashId.IndexOf(Profile.Instance.CurrentProfile.UserHashId);

            _userPointsManager = new PointsManager(playerPos);

            cts = new CancellationTokenSource();
            CancellationToken token = cts.Token;

            Task.Factory.StartNew(() => UpdateGameModelTask(token), token);
        }
Exemple #6
0
        public static IOamConfiguration GetConfigurationByIndex(
            string boardName,
            int boardNumber,
            int configIndex
            )
        {
            IOnlineSession        onlineSession = OnlineSession.GetOnlineSession();
            List <IOamLocalBoard> boards        = onlineSession.Boards;

            IOamLocalBoard          board = onlineSession.GetBoard(boardName, boardNumber);
            OamConfigurationScanner OCS   = new OamConfigurationScanner();

            OCS.Board = board;
            IEnumerable <IOamConfiguration> configs    = OCS.Scan();
            List <IOamConfiguration>        configList = new List <IOamConfiguration>(configs);
            IOamConfiguration config = configList[configIndex];

            return(config);
        }
Exemple #7
0
        private void Join()
        {
            // Don't join if already in game
            if (OnlineSession.Instance?.SessionId == _model.HashId)
            {
                CloseAction();
                return;
            }

            OnlineSession.TerminateSession();
            EventManager.Instance.Interrupt(new ChangeStateEvent()
            {
                NextState = Enums.States.OnlineGame
            });
            EventManager.Instance.Notice(new JoinOnlineGameRequestEvent()
            {
                HashId = _model.HashId, IsPrivate = _model.IsPrivate, Password = Password, Name = _model.Name
            });
            CloseAction();
        }
        /// <summary>
        /// 切换仿真状态
        /// from OamPlcSimCtl
        /// </summary>
        /// <param name="simulated"></param>
        public static void SwitchBoardsToSimulationState(this OnlineSession session, bool simulated)
        {
            List <IOamLocalBoard> boards = session.Boards;

            foreach (IOamLocalBoard oamLocalBoard1 in boards)
            {
                OamLocalBoardBase oamLocalBoardBase = oamLocalBoard1 as OamLocalBoardBase;
                if (oamLocalBoardBase != null)
                {
                    OamLocalBoard oamLocalBoard2 = oamLocalBoard1 as OamLocalBoard;
                    if (oamLocalBoard2 != null)
                    {
                        bool isPlcSimulation = oamLocalBoard2.IsPlcSimulation();
                        oamLocalBoardBase.ChangeSimulated(simulated, isPlcSimulation);
                    }
                    else
                    {
                        oamLocalBoardBase.ChangeSimulated(simulated, false);
                    }
                }
            }
        }
        public static List <OamLocalBoardBaseProxy> GetBoardProxies(this OnlineSession session)
        {
            IList <IOamLocalBoard>        boards       = session.Boards;
            List <OamLocalBoardBaseProxy> boardproxies = new List <OamLocalBoardBaseProxy>();

            foreach (IOamLocalBoard board in boards)
            {
                if (board.IsOamComBoard())
                {
                    OamComBoardProxy proxy = new OamComBoardProxy(board);
                    boardproxies.Add(proxy);
                }
                if (board.IsOamCustomBoard())
                {
                }
                if (board.IsOamLocalBoard())
                {
                    OamLocalBoardProxy proxy = new OamLocalBoardProxy(board);
                    boardproxies.Add(proxy);
                }
            }

            return(boardproxies);
        }
Exemple #10
0
        public static IOamConfiguration GetConfigurationByName(
            string configName
            )
        {
            IOnlineSession onlineSession = OnlineSession.GetOnlineSession();

            List <IOamLocalBoard> Boards = onlineSession.Boards;

            foreach (var board in Boards)
            {
                OamConfigurationScanner OCS = new OamConfigurationScanner();
                OCS.Board = board;
                IEnumerable <IOamConfiguration> configs    = OCS.Scan();
                List <IOamConfiguration>        configList = new List <IOamConfiguration>(configs);
                foreach (var config in configList)
                {
                    if (config.Name == configName)
                    {
                        return(config);
                    }
                }
            }
            return(null);
        }
        public static OamPlcSimCtlProxy GetPlcSimController(this OnlineSession session)
        {
            OamPlcSimCtl simCtl = session.PlcSimController as OamPlcSimCtl;

            return(new OamPlcSimCtlProxy(simCtl));
        }
 public static ClientSessions GetClientSessions(this OnlineSession session)
 {
     return(session.SessionContainer);
 }
 public void SetContext(OnlineSession session)
 {
     DataContext = session;
 }