Пример #1
0
    // Use this for initialization
    void Start()
    {
        ws = GameObject.Find("WebsocketManager").GetComponent <WSManager>();

        hand_l = GameObject.Find("Hand_l").gameObject;
        hand_r = GameObject.Find("Hand_r").gameObject;
    }
Пример #2
0
        public AdministrationViewModel(WSManager ds) : base(ds)
        {
            MessengerInstance.Register <AdmNavigationMessage>(this, (m) => {
                switch (m.View)
                {
                case AdminViewEnum.Course:
                    AdmContent = SimpleIoc.Default.GetInstance <AdmCourseViewModel>();
                    break;

                case AdminViewEnum.Topic:
                    AdmContent = SimpleIoc.Default.GetInstance <AdmTopicViewModel>();
                    break;

                case AdminViewEnum.Question:
                    break;

                case AdminViewEnum.NewPerson:
                    AdmContent = SimpleIoc.Default.GetInstance <NewPersonViewModel>();
                    break;

                default:
                    break;
                }
            });


            if (IsInDesignMode)
            {
            }
            else
            {
            }
        }
Пример #3
0
        public override async Task ReceiveAsync(WebSocket socket, WebSocketReceiveResult result, byte[] buffer)
        {
            var socketId = WSManager.GetId(socket);
            var message  = $"{socketId} said: {Encoding.UTF8.GetString(buffer, 0, result.Count)}";

            await SendMessageToAllAsync(message);
        }
Пример #4
0
    public WSManager WSMObj;       //ワールドセレクトマネージャーのオブジェクト

    // Start is called before the first frame update
    void Start()
    {
        NowTime = 0.0f;
        MoveEnd = true;
        WSMObj  = GameObject.FindWithTag("WSManager").GetComponent <WSManager>();
        WSMObj.SetMoveEndFlg(MoveEnd);
    }
Пример #5
0
        public void S2_OK_OnHit()
        {
            WSManager ws = FindObjectOfType <WSManager>();

            if (ws != null)
            {
                string active_hand = ws.getActiveHand();
                float  dis         = -1.0f;
                if (active_hand == "LEFT_HAND")
                {
                    dis = Vector3.Distance(m_leftHandPalm.position, Camera.main.transform.position);
                }
                else if (active_hand == "RIGHT_HAND")
                {
                    dis = Vector3.Distance(m_rightHandPalm.position, Camera.main.transform.position);
                }

                if (dis > GlobalStates.globalConfigFile.NearLeapOutboundDistance)
                {
                    GlobalStates.globalConfigFile.FarLeapOutboundDistance = dis;
                    m_Stage = 3;
                    m_Stage3.gameObject.SetActive(false);
                    OnFinished();
                }
            }
        }
Пример #6
0
        public override async Task OnDisconnected(WebSocket socket)
        {
            var id = WSManager.GetId(socket);
            await base.OnDisconnected(socket);

            await SendMessageToAllAsync($"{id} has disconnected");
        }
Пример #7
0
        public override async void OnConnected(WebSocket socket)
        {
            base.OnConnected(socket);

            var socketId = WSManager.GetId(socket);

            await SendMessageToAllAsync($"{socketId} is now connected");
        }
Пример #8
0
 // Start is called before the first frame update
 void Start()
 {
     wsmanager = GameObject.Find("WebsocketManager").GetComponent <WSManager>();
     if (DummyDataReplay)
     {
         GetComponent <WSManager>().enableDummyDataReplay();
         loadCache();
     }
 }
Пример #9
0
 public RealTimeWSMiddleware(
     RequestDelegate next,
     WSManager WSManager,
     WSHandler wsHandler)
 {
     _next = next;
     _wSConnectionManager = WSManager;
     _wsHandler           = wsHandler;
 }
Пример #10
0
 public AdmTopicViewModel(WSManager ds) : base(ds)
 {
     if (IsInDesignMode)
     {
     }
     else
     {
     }
 }
Пример #11
0
    public LoginViewModel(WSManager ds):base(ds) {

      if (IsInDesignMode) {
        ErrorMsg = "Error message";
        UserName = "******";
        Password = "******";
      }
      else {
      }
    }
Пример #12
0
 public NewPersonViewModel(WSManager ds)
     : base(ds)
 {
     if (IsInDesignMode)
     {
     }
     else
     {
     }
 }
Пример #13
0
 public LoginViewModel(WSManager ds) : base(ds)
 {
     if (IsInDesignMode)
     {
         ErrorMsg = "Error message";
         UserName = "******";
         Password = "******";
     }
     else
     {
     }
 }
Пример #14
0
        public AdmTopicCWViewModel(WSManager ds)
            : base(ds)
        {
            ErrorMsg = string.Empty;

            if (IsInDesignMode)
            {
            }
            else
            {
            }
        }
Пример #15
0
 public TestDetailsViewModel(WSManager ds) : base(ds)
 {
     if (IsInDesignMode)
     {
         SetInstance(new List <TestDetails>());
         Instance.Add(new TestDetails {
             QuestionText = "kerdes", ChekedAnswer = "jo valasz", CorrectAnswer = "jo valasz"
         });
         Instance.Add(new TestDetails {
             QuestionText = "kerdes", ChekedAnswer = "valasz", CorrectAnswer = "rossz valasz"
         });
     }
 }
Пример #16
0
        public StudentViewModel(WSManager ds) : base(ds)
        {
            NumberQuestion = 15;

            if (IsInDesignMode)
            {
                _LoggedInPerson = new PersonDetails()
                {
                    PersonID = 1, FirstName = "jozsika"
                };

                TestResultCaption = string.Format("Eddigi Tesztek Eredményei: {0}", _LoggedInPerson.TreeDisplayName);

                ErrorMsg       = "Ez meg az error";
                ShowPersonList = true;

                StatisticList = new ObservableCollection <Statistics>();
                StatisticList.Add(new Statistics {
                    Generated     = DateTime.Now,
                    TestID        = 2,
                    Questions     = 15,
                    CorrectAnswer = 3,
                    Percent       = 3,
                    TotalTime     = TimeSpan.FromSeconds(69)
                });

                PersonTreeList = new List <PersonRole>();
                PersonTreeList.Add(new PersonRole {
                    RoleName = "Saját", Children = new List <PersonDetails>()
                    {
                        _LoggedInPerson
                    }
                });

                PersonTreeList.Add(new PersonRole {
                    RoleName = "Diák", Children = new List <PersonDetails>()
                    {
                        new PersonDetails {
                            FirstName = "vki", LastName = "vki"
                        }
                    }
                });
            }
            else
            {
            }
        }
Пример #17
0
        public TestExecutionViewModel(WSManager ds, TestExecutionInit testinitdata)
            : base(ds)
        {
            if (IsInDesignMode)
            {
                TestQuestion = "Ez egy jo kis kerdes?";

                Answer1 = "Valasz 1";
                Answer2 = "Valasz 2";
                Answer3 = "Valasz 3";
                Answer4 = "Valasz 4";

                CheckedAnswer = 0;
            }
            else
            {
                _InitData = testinitdata;
            }
        }
Пример #18
0
        public async override Task ReceiveAsync(WebSocket socket, WebSocketReceiveResult result, byte[] buffer)
        {
            var id      = WSManager.GetId(socket);
            var message = GetMessageFromByteArray(result, buffer);

            try
            {
                SocketMessage m = JsonConvert.DeserializeObject <SocketMessage>(message);
                if (m != null)
                {
                    AllConnectedUsers.TryGetValue(socket, out SocketUser socketUser);
                    m.Content.UserId = socketUser.User.Id;
                    //_mmw.Create(m.Content);
                    switch (m.Type)
                    {
                    case "BROADCASTMESSAGE":
                        await SendMessageToAllAsync(message);

                        break;

                    case "PRIVATEMESSAGE":
                        await SendMessageAsync(m.To, message);

                        break;

                    case "COMMAND":
                        await SendMessageToAllAsync(message);

                        break;

                    default:
                        await SendMessageAsync(socket, "{ \"error\": \"bad request\"}");

                        break;
                    }
                }
            }
            catch (Exception e)
            {
                await SendMessageAsync(socket, "bad request");
            }
        }
Пример #19
0
        public override async void OnConnected(WebSocket socket, HttpContext context)
        {
            var user = _am.Authenticate(context);

            if (user == null)
            {
                socket.Abort(); return;
            }
            base.OnConnected(socket, context);
            var socketUser = new SocketUser(user, _cm, socket);

            AllConnectedUsers.TryAdd(socket, socketUser);
            foreach (var c in socketUser.SubscribedChannels)
            {
                Channels.TryGetValue(c.Id, out SocketChannel channel);
                channel.JoinChannel(socketUser);
            }

            var socketId = WSManager.GetId(socket);

            await SendMessageToAllAsync("{ \"type\": \"USERCONNECTED\", \"message\":\"" + user.Email + " is now connected\"}");
        }
Пример #20
0
 static void gui_PluginReady(object sender, EventArgs e)
 {
     manager = new WSManager();
     GuiLoaded.Invoke(null, null);
 }
Пример #21
0
        public MainViewModel(WSManager ds)
            : base(ds)
        {
            MessengerInstance.Register <AfterLoginLogoutMessage>(this, AfterLogin);

            MessengerInstance.Register <TestExecutionRunningMessage>(this, (m) => {
                if (m.IsTestRunning)
                {
                    IsAdminVisible     = false;
                    IscmdLogoutVisible = false;
                }
                else
                {
                    IsAdminVisible = _DataService.LoggedInUser.RoleEnum == PersonRoleEnum.Teacher ||
                                     _DataService.LoggedInUser.RoleEnum == PersonRoleEnum.Admin;
                    IscmdLogoutVisible = true;
                }
            });

            MessengerInstance.Register <NavigationMessage>(this, (m) => {
                switch (m.View)
                {
                case ViewEnum.Login:
                    CurrentViewModel = SimpleIoc.Default.GetInstance <LoginViewModel>();
                    if (m.UserState != null && m.UserState.ToString() == "SessionExpired")
                    {
                        IscmdLogoutVisible = false;
                        IsAdminVisible     = false;
                        WelcomeString      = "Lejárt a Session. Kérlek, jelentkezz be újra.";
                    }
                    break;

                case ViewEnum.Student:
                    CurrentViewModel          = SimpleIoc.Default.GetInstance <StudentViewModel>();
                    CurrentViewModel.ErrorMsg = string.Empty;
                    if (m.UserState != null && ((string[])m.UserState)[0] == "TestCreateFailed")
                    {
                        CurrentViewModel.ErrorMsg = ((string[])m.UserState)[1];
                    }
                    break;

                case ViewEnum.NewPerson:
                    CurrentViewModel = SimpleIoc.Default.GetInstance <NewPersonViewModel>();
                    break;

                case ViewEnum.TestExecution:
                    // force viewmodel initialization always in order to handle the right test execution
                    if (SimpleIoc.Default.IsRegistered <TestExecutionViewModel>())
                    {
                        SimpleIoc.Default.Unregister <TestExecutionViewModel>();
                    }

                    // register TestExec Init data - if it is not yet registered
                    if (!SimpleIoc.Default.IsRegistered <TestExecutionInit>())
                    {
                        SimpleIoc.Default.Register <TestExecutionInit>();
                    }

                    var init = SimpleIoc.Default.GetInstance <TestExecutionInit>();
                    init.NumberOfQuestions = ((TestExecutionInit)m.UserState).NumberOfQuestions;
                    init.TopicIDs          = ((TestExecutionInit)m.UserState).TopicIDs;

                    SimpleIoc.Default.Register <TestExecutionViewModel>();
                    CurrentViewModel = SimpleIoc.Default.GetInstance <TestExecutionViewModel>();
                    break;

                case ViewEnum.Admin:
                    CurrentViewModel = SimpleIoc.Default.GetInstance <AdministrationViewModel>();
                    break;

                default:
                    break;
                }
            });

            if (this.IsInDesignMode)
            {
            }
            else
            {
                MessengerInstance.Send <NavigationMessage>(new NavigationMessage {
                    View = ViewEnum.Login
                });
            }
        }
Пример #22
0
 public BaseViewModel(WSManager ds)
 {
     _DataService = ds;
 }
Пример #23
0
 public AdmTopicViewModel(WSManager ds) : base(ds) {
   if (IsInDesignMode) {
   }
   else {
   }
 }
Пример #24
0
    // Use this for initialization
    void Start()
    {
        ws              = GameObject.Find("WebsocketManager").GetComponent <WSManager>();
        dataManager     = GameObject.Find("gDataManager").GetComponent <DataManager> ();
        l_palm          = this.transform.GetChild(5).gameObject;
        l_finger0       = this.transform.GetChild(0).gameObject;
        l_finger0_bone0 = l_finger0.transform.GetChild(0).gameObject;
        l_finger0_bone1 = l_finger0.transform.GetChild(1).gameObject;
        l_finger0_bone2 = l_finger0.transform.GetChild(2).gameObject;

        l_finger1       = this.transform.GetChild(1).gameObject;
        l_finger1_bone0 = l_finger1.transform.GetChild(0).gameObject;
        l_finger1_bone1 = l_finger1.transform.GetChild(1).gameObject;
        l_finger1_bone2 = l_finger1.transform.GetChild(2).gameObject;

        l_finger2       = this.transform.GetChild(2).gameObject;
        l_finger2_bone0 = l_finger2.transform.GetChild(0).gameObject;
        l_finger2_bone1 = l_finger2.transform.GetChild(1).gameObject;
        l_finger2_bone2 = l_finger2.transform.GetChild(2).gameObject;

        l_finger3       = this.transform.GetChild(3).gameObject;
        l_finger3_bone0 = l_finger3.transform.GetChild(0).gameObject;
        l_finger3_bone1 = l_finger3.transform.GetChild(1).gameObject;
        l_finger3_bone2 = l_finger3.transform.GetChild(2).gameObject;

        l_finger4       = this.transform.GetChild(4).gameObject;
        l_finger4_bone0 = l_finger4.transform.GetChild(0).gameObject;
        l_finger4_bone1 = l_finger4.transform.GetChild(1).gameObject;
        l_finger4_bone2 = l_finger4.transform.GetChild(2).gameObject;

        l_arm = transform.Find("arm");

        kalmanPalm  = new MatrixKalmanWrapper();
        kalmanIndex = new MatrixKalmanWrapper();
        kalmanThumb = new MatrixKalmanWrapper();
        kalmanHand  = new MatrixKalmanWrapper();

        //moving average queues
        queuePalm  = new Vector3[smoothingBuffer];
        queueIndex = new Vector3[smoothingBuffer];
        queueThumb = new Vector3[smoothingBuffer];
        queueHand  = new Vector3[smoothingBuffer];

        //initialization
        for (int i = 0; i < smoothingBuffer; i++)
        {
            queuePalm[i]  = Vector3.zero;
            queueIndex[i] = Vector3.zero;
            queueThumb[i] = Vector3.zero;
            queueHand[i]  = Camera.main.transform.position + Camera.main.transform.rotation * leapMotionOffset;
        }


        //check
        Debug.Log("Sync check hand." + GlobalStates.globalConfigFile.Available);
        if (GlobalStates.globalConfigFile.Available)
        {
            initialLeapMotionOffset = GlobalStates.globalConfigFile.HandOffset;
        }
        else
        {
            initialLeapMotionOffset = leapMotionOffset;
        }
    }
        // Update is called once per frame
        protected virtual void Update()
        {
            // _UpdateApplicationLifecycle();
            if (m_ARSupport == null)
            {
                return;
            }

            m_AllPlanes = m_ARSupport.getPlanes();

            // If Interaction with ARCore planes is available.
            if (m_EnableARPlaneInteraction)
            {
                if (Input.touchCount == 0)
                {
                    return;
                }

                Touch touch = Input.GetTouch(0);
                // if current touch is valid. (notice: here is a ! mark before the logic)
                if (!(Input.touchCount < 1 || touch.phase != TouchPhase.Began))
                {
                    // if hitting on a gui button, then don't do any interaction.
                    /* condition only passes when no gui is hit */
                    if (EventSystem.current == null || !(EventSystem.current.IsPointerOverGameObject() ||
                                                         EventSystem.current.currentSelectedGameObject != null))
                    {
                        List <PortalbleHitResult> hits = new List <PortalbleHitResult>();
                        if (m_ARSupport.Raycast(touch.position, hits))
                        {
                            OnARPlaneHit(hits[0]);
                        }
                    }
                }
            }

            // If interaction with Unity planes is available
            if (m_EnableUnityPlaneInteraction && m_UnityPlaneInteractionLayer >= 0)
            {
                if (m_FirstPersonCamera)
                {
                    Touch touch;
                    // If current touch is valid. (Notice: Here is a ! mark before the logic)
                    if (!(Input.touchCount < 1 || (touch = Input.GetTouch(0)).phase != TouchPhase.Began))
                    {
                        // If hitting on a gui button, then don't do any interaction.
                        if (EventSystem.current == null || !(EventSystem.current.IsPointerOverGameObject() || EventSystem.current.currentSelectedGameObject != null))
                        {
                            Ray        ray = m_FirstPersonCamera.ScreenPointToRay(touch.position);
                            RaycastHit hit;
                            if (Physics.Raycast(ray, out hit, 9999f, 0x0fffffff))
                            {
                                if (hit.transform.GetComponent <UnityEngine.XR.ARFoundation.ARPlane>() != null)
                                {
                                    OnUnityPlaneHit(hit);
                                }
                            }
                        }
                    }
                }
            }

            //if (m_EnablePlaneGenerator) {
            //    if (Session.Status == SessionStatus.Tracking) {
            //        // Must be tracking.
            //        // Iterate over planes found in this frame and instantiate corresponding GameObjects to visualize them.
            //        Session.GetTrackables<DetectedPlane>(m_NewPlanes, TrackableQueryFilter.New);
            //        for (int i = 0; i < m_NewPlanes.Count; i++) {
            //            // Instantiate a plane visualization prefab and set it to track the new plane. The transform is set to
            //            // the origin with an identity rotation since the mesh for our prefab is updated in Unity World
            //            // coordinates.
            //            GameObject planeObject = Instantiate(m_DetectedPlanePrefab, Vector3.zero, Quaternion.identity, transform);
            //            planeObject.GetComponent<DetectedPlaneVisualizer>().Initialize(m_NewPlanes[i]);
            //        }
            //    }
            //}

            if (m_EnableHandDistanceWarning)
            {
                // Find two hands
                UpdateHandTransform();

                bool foc = false;

                /**
                 * if (m_tLeftHand != null && CheckDistance(m_tLeftHand, out foc)) {
                 *  OnHandInappropriateDistance(foc);
                 * }
                 * else if (m_tRightHand != null && CheckDistance(m_tRightHand, out foc)) {
                 *  OnHandInappropriateDistance(foc);
                 * }**/

                // Check visualization availability..
                if (m_RedScreenInstance == null)
                {
                    m_RedScreenInstance = GameObject.Instantiate(m_RedScreen);
                }

                // Currently, only check for right hand. Cause we don't know activity of hand.
                if (m_WSManager == null)
                {
                    m_WSManager = GameObject.FindObjectOfType <WSManager>();
                }
                if (m_WSManager != null && m_RedScreenInstance != null)
                {
                    string activeHand          = m_WSManager.getActiveHand();
                    bool   distanceCheckResult = false;
                    if (activeHand == "NO_HAND")
                    {
                        m_RedScreenInstance.SetActive(false);
                    }
                    else if (activeHand == "LEFT_HAND")
                    {
                        distanceCheckResult = m_tLeftHand != null && CheckDistance(m_tLeftHand, out foc);
                    }
                    else
                    {
                        distanceCheckResult = m_tRightHand != null && CheckDistance(m_tRightHand, out foc);
                    }

                    if (distanceCheckResult)
                    {
                        if (m_RedScreenInstance != null && m_RedScreenInstance.activeSelf == false)
                        {
                            m_RedScreenInstance.SetActive(true);
                        }
                        OnHandInappropriateDistance(foc);
                    }
                    else
                    {
                        if (m_RedScreenInstance != null && m_RedScreenInstance.activeSelf == true)
                        {
                            m_RedScreenInstance.SetActive(false);
                        }
                    }
                }
            }
        }
Пример #26
0
    public StudentViewModel(WSManager ds):base(ds) {

      NumberQuestion = 15;

      if (IsInDesignMode) {
        _LoggedInPerson = new PersonDetails() { PersonID = 1, FirstName = "jozsika" };

        TestResultCaption = string.Format("Eddigi Tesztek Eredményei: {0}", _LoggedInPerson.TreeDisplayName);

        ErrorMsg = "Ez meg az error";
        ShowPersonList = true;

        StatisticList = new ObservableCollection<Statistics>();
        StatisticList.Add(new Statistics {
          Generated = DateTime.Now,
          TestID = 2,
          Questions = 15,
          CorrectAnswer = 3,
          Percent = 3,
          TotalTime = TimeSpan.FromSeconds(69)
        });

        PersonTreeList = new List<PersonRole>();
        PersonTreeList.Add(new PersonRole { RoleName = "Saját", Children = new List<PersonDetails>() { _LoggedInPerson } });

        PersonTreeList.Add(new PersonRole { RoleName = "Diák", Children = new List<PersonDetails>() { new PersonDetails { FirstName = "vki", LastName = "vki" } } });
      }
      else {
      }

    }
Пример #27
0
    public TestExecutionViewModel(WSManager ds, TestExecutionInit testinitdata)
      : base(ds) {

      if (IsInDesignMode) {
        TestQuestion = "Ez egy jo kis kerdes?";

        Answer1 = "Valasz 1";
        Answer2 = "Valasz 2";
        Answer3 = "Valasz 3";
        Answer4 = "Valasz 4";

        CheckedAnswer = 0;
      }
      else {
        _InitData = testinitdata;
      }
    }
Пример #28
0
 public BaseCWViewModel(WSManager ds) : base(ds)
 {
 }
Пример #29
0
    public NewPersonViewModel(WSManager ds)
      : base(ds) {

      if (IsInDesignMode) {
      }
      else {
      }
    }
Пример #30
0
    public MainViewModel(WSManager ds)
      : base(ds) {

      MessengerInstance.Register<AfterLoginLogoutMessage>(this, AfterLogin);

      MessengerInstance.Register<TestExecutionRunningMessage>(this, (m) => {
        if (m.IsTestRunning) {
          IsAdminVisible = false;
          IscmdLogoutVisible = false;
        }
        else {
          IsAdminVisible = _DataService.LoggedInUser.RoleEnum == PersonRoleEnum.Teacher
            || _DataService.LoggedInUser.RoleEnum == PersonRoleEnum.Admin;
          IscmdLogoutVisible = true;
        }
      });

      MessengerInstance.Register<NavigationMessage>(this, (m) => {
        switch (m.View) {
          case ViewEnum.Login:
            CurrentViewModel = SimpleIoc.Default.GetInstance<LoginViewModel>();
            if (m.UserState != null && m.UserState.ToString() == "SessionExpired") {
              IscmdLogoutVisible = false;
              IsAdminVisible = false;
              WelcomeString = "Lejárt a Session. Kérlek, jelentkezz be újra.";
            }
            break;
          case ViewEnum.Student:
            CurrentViewModel = SimpleIoc.Default.GetInstance<StudentViewModel>();
            CurrentViewModel.ErrorMsg = string.Empty;
            if (m.UserState != null && ((string[])m.UserState)[0] == "TestCreateFailed") {
              CurrentViewModel.ErrorMsg = ((string[])m.UserState)[1];
            }
            break;
          case ViewEnum.NewPerson:
            CurrentViewModel = SimpleIoc.Default.GetInstance<NewPersonViewModel>();
            break;
          case ViewEnum.TestExecution:
            // force viewmodel initialization always in order to handle the right test execution
            if (SimpleIoc.Default.IsRegistered<TestExecutionViewModel>())
              SimpleIoc.Default.Unregister<TestExecutionViewModel>();

            // register TestExec Init data - if it is not yet registered
            if (!SimpleIoc.Default.IsRegistered<TestExecutionInit>()) {
              SimpleIoc.Default.Register<TestExecutionInit>();
            }

            var init = SimpleIoc.Default.GetInstance<TestExecutionInit>();
            init.NumberOfQuestions = ((TestExecutionInit)m.UserState).NumberOfQuestions;
            init.TopicIDs = ((TestExecutionInit)m.UserState).TopicIDs;

            SimpleIoc.Default.Register<TestExecutionViewModel>();
            CurrentViewModel = SimpleIoc.Default.GetInstance<TestExecutionViewModel>();
            break;
          case ViewEnum.Admin:
            CurrentViewModel = SimpleIoc.Default.GetInstance<AdministrationViewModel>();
            break;
          default:
            break;
        }

      });

      if (this.IsInDesignMode) {
      }
      else {
        MessengerInstance.Send<NavigationMessage>(new NavigationMessage { View = ViewEnum.Login });
      }
    }
Пример #31
0
    public AdministrationViewModel(WSManager ds):base(ds) {

      MessengerInstance.Register<AdmNavigationMessage>(this, (m) => {
        switch (m.View) {
          case AdminViewEnum.Course:
            AdmContent = SimpleIoc.Default.GetInstance<AdmCourseViewModel>();
            break;
          case AdminViewEnum.Topic:
            AdmContent = SimpleIoc.Default.GetInstance<AdmTopicViewModel>();
            break;
          case AdminViewEnum.Question:
            break;
          case AdminViewEnum.NewPerson:
            AdmContent = SimpleIoc.Default.GetInstance<NewPersonViewModel>();
            break;
          default:
            break;
        }

      });


      if (IsInDesignMode) {
      }
      else {
      }
    }