/// <summary>
        /// Logic used when the State changes.
        /// </summary>
        /// <param name="oldValue">The old State value.</param>
        protected override void OnStateChanged(ViewModelState oldValue)
        {
            base.OnStateChanged(oldValue);
            Navigation.State = State;
            switch (State)
            {
            case ViewModelState.Idle:
                CriticalOperationType = CriticalOperationType.None;
                ModelSearcher?.RequestEnable(_adminToken);
                break;

            case ViewModelState.FamilialOperation:
            case ViewModelState.Restricted:
                ModelSearcher?.RequestEnable(_adminToken);
                break;

            case ViewModelState.NonCriticalOperation:
            case ViewModelState.CriticalOperation:
                ModelSearcher?.RequestDisable(_adminToken);
                break;
            }
        }
 /// <summary>
 /// The logic used when a search has been initiated.
 /// </summary>
 /// <param name="sender">The initiator of the event. Is used as token.</param>
 /// <param name="e">The EventArgs of the event.</param>
 private void Locator_SearchToBegin(object sender, EventArgs e)
 {
     ModelSearcher?.RequestDisable(sender);
     RecordChangeLocker?.RequestLock(sender);
 }