public SettingModel(SettingViewModel settingViewModel)
        {
            if (settingViewModel.BaseSettingViewModel != null) 
            {
                this.Name = settingViewModel.BaseSettingViewModel.Name;
                this.TargetDuration = settingViewModel.BaseSettingViewModel.TargetDuration;
                this.StartOffsetDuration = settingViewModel.BaseSettingViewModel.StartOffsetDuration;
            }

            if (settingViewModel.EvaluationSettingViewModel != null)
            {
                this.IsUsedEvaluation = settingViewModel.EvaluationSettingViewModel.IsUsed;
                this.IsRecordSamplesEvaluation = settingViewModel.EvaluationSettingViewModel.IsRecordSamples;
                this.SampleBufferSize = settingViewModel.EvaluationSettingViewModel.SampleBufferSize;
                this.AccelerometerThreshold = settingViewModel.EvaluationSettingViewModel.AccelerometerThreshold;
                this.GyrometerThreshold = settingViewModel.EvaluationSettingViewModel.GyrometerThreshold;
                this.StepDistance = settingViewModel.EvaluationSettingViewModel.StepDistance;
                this.PeakJoinDistance = settingViewModel.EvaluationSettingViewModel.PeakJoinDistance;
            }

            if (settingViewModel.AccerlerometerSettingViewModel != null)
            {
                this.IsUsedAccelerometer = settingViewModel.AccerlerometerSettingViewModel.IsUsed;
                this.IsRecordSamplesAccelerometer = settingViewModel.AccerlerometerSettingViewModel.IsRecordSamples;
                this.ReportIntervalAccelerometer = settingViewModel.AccerlerometerSettingViewModel.ReportInterval;
            }

            if (settingViewModel.GyrometerSettingViewModel != null)
            {
                this.IsUsedGyrometer = settingViewModel.GyrometerSettingViewModel.IsUsed;
                this.IsRecordSamplesGyrometer = settingViewModel.GyrometerSettingViewModel.IsRecordSamples;
                this.ReportIntervalGyrometer = settingViewModel.GyrometerSettingViewModel.ReportInterval;
            }

            if (settingViewModel.QuaternionSettingViewModel != null)
            {
                this.IsUsedQuaternion = settingViewModel.QuaternionSettingViewModel.IsUsed;
                this.IsRecordSamplesQuaternion = settingViewModel.QuaternionSettingViewModel.IsRecordSamples;
                this.ReportIntervalQuaternion = settingViewModel.QuaternionSettingViewModel.ReportInterval;
            }

            if (settingViewModel.GeolocationSettingViewModel != null)
            {
                this.IsUsedGeolocation = settingViewModel.GeolocationSettingViewModel.IsUsed;
                this.IsRecordSamplesGeolocation = settingViewModel.GeolocationSettingViewModel.IsRecordSamples;
                this.ReportIntervalGeolocation = settingViewModel.GeolocationSettingViewModel.ReportInterval;
            }
        }
        public bool UpdateMeasurementSettingById(String id, SettingViewModel updateSettingViewModel)
        {
            bool isUpdated = false;

            if (id != null && updateSettingViewModel != null)
            {
                MeasurementModel measurementFromList = GetMeasurementById(id);
                if (measurementFromList != null)
                {
                    measurementFromList.Setting = new SettingModel(updateSettingViewModel);
                    isUpdated = true;
                    OnMeasurementListUpdated(EventArgs.Empty);
                }
            }
            return isUpdated;
        }
        public bool UpdateGlobalSetting(SettingViewModel updateSettingViewModel) 
        {
            bool isUpdated = false;

            if (updateSettingViewModel != null)
            {
                this._globalSetting = new SettingModel(updateSettingViewModel);
                isUpdated = true;
                OnGlobalSettingUpdated(EventArgs.Empty);
            }
            return isUpdated;
        }