/// <summary>
        /// Unsubscribes the specified model.
        /// </summary>
        /// <param name="model">The model.</param>
        public void Unsubscribe(DataSetListViewModel model)
        {
            if (model == null)
            {
                return;
            }

            model.Unsubscribe();
            if (RequestCurrentDataTypeModelEventToken != null)
            {
                InternalEvents.GetEvent <Events.RequestCurrentDataTypeModelEvent>().Unsubscribe(RequestCurrentDataTypeModelEventToken);
            }
        }
        /// <summary>
        /// Subscribes the specified model.
        /// </summary>
        /// <param name="model">The model.</param>
        public void Subscribe(DataSetListViewModel model)
        {
            if (model == null)
            {
                return;
            }

            Unsubscribe(null);
            RequestCurrentDataTypeModelEventToken =
                InternalEvents.GetEvent <Events.RequestCurrentDataTypeModelEvent>().Subscribe(
                    request =>
            {
                request.Data   = Model.SelectedDataType;
                request.DataId = Model.SelectedDataSet != null ? Model.SelectedDataSet.Dataset.Id : (int?)null;
            });

            model.Subscribe();
        }