private void BindTrendData(TrendAnalysisViewModel viewModel)
        {
            IEnumerable<AircraftInstance> selectedAircraft = this.GetSelectedAircrafts(viewModel);

            foreach (var aircraft in selectedAircraft)
            {
                if (viewModel.ItemsMap.ContainsKey(aircraft.AircraftNumber))
                {
                    this.AddData(aircraft, viewModel);
                    continue;
                }

                ExtremumPointInfo[] infos = ServerHelper.GetExtremumPointInfos(aircraft);
                viewModel.ItemsMap.Add(aircraft.AircraftNumber, new List<ExtremumPointInfo>(infos));
                this.AddData(aircraft, viewModel);
            }
        }
        private void BindData(TrendAnalysisViewModel viewModel)
        {
            BindAircraft(viewModel);

            BindTrendData(viewModel);
        }
        private void RemoveData(AircraftInstance aircraft, TrendAnalysisViewModel viewModel)
        {
            //var items = viewModel.ItemsMap[aircraft.AircraftNumber];

            //var result1 = from one in items
            //              where TrendAnalysisItem.Fields.Contains(one.ParameterID)
            //              group one by one.FlightID into gp
            //              select gp;

            var subset = from one in viewModel.T6Collection
                         where one.AircraftNumber != aircraft.AircraftNumber
                         select one;

            viewModel.T6Collection = new TrendAnalysisSubViewModel(subset); //.Add(trenditem);
            viewModel.TtCollection = new TrendAnalysisSubViewModel(subset); //.Add(trenditem);
            viewModel.ViCollection = new TrendAnalysisSubViewModel(subset); //.Add(trenditem);
            viewModel.NHCollection = new TrendAnalysisSubViewModel(subset); //.Add(trenditem);
            viewModel.NCollection = new TrendAnalysisSubViewModel(subset); //.Add(trenditem);
            viewModel.KBCollection = new TrendAnalysisSubViewModel(subset); //.Add(trenditem);
            viewModel.HpCollection = new TrendAnalysisSubViewModel(subset); //.Add(trenditem);

            //foreach (var gp in result1)
            //{
            //    TrendAnalysisItem trenditem = this.AssignOneItem(gp);

            //    trenditem.FlightDateTime = gp.First().FlightDate;
            //    trenditem.AircraftNumber = aircraft.AircraftNumber;

            //    viewModel.T6Collection.Add(trenditem);
            //    viewModel.TtCollection.Add(trenditem);
            //    viewModel.ViCollection.Add(trenditem);
            //    viewModel.NHCollection.Add(trenditem);
            //    viewModel.NCollection.Add(trenditem);
            //    viewModel.KBCollection.Add(trenditem);
            //    viewModel.HpCollection.Add(trenditem);
            //}
        }
        private void BindAircraft(TrendAnalysisViewModel viewModel)
        {
            IEnumerable<AircraftInstance> instances = ServerHelper.GetAllAircrafts(
                ApplicationContext.Instance.CurrentAircraftModel);

            viewModel.AircraftInstances = new ObservableCollection<AircraftInstance>(instances);

            List<AircraftInstanceBindingClass> bindingClass = new List<AircraftInstanceBindingClass>();

            foreach (var instance in viewModel.AircraftInstances)
            {
                AircraftInstanceBindingClass binding = new AircraftInstanceBindingClass(instance);
                if (instance.AircraftNumber == ApplicationContext.Instance.CurrentFlight.Aircraft.AircraftNumber)
                {
                    binding.IsSelected = true;
                }
                binding.PropertyChanged += binding_PropertyChanged;
                bindingClass.Add(binding);
            }

            this.listAircrafts.ItemsSource = bindingClass; //viewModel.AircraftInstances;
        }
        private IEnumerable<AircraftInstance> GetSelectedAircrafts(TrendAnalysisViewModel viewModel)
        {
            if (this.listAircrafts.ItemsSource != null && this.listAircrafts.ItemsSource is List<AircraftInstanceBindingClass>)
            {
                List<AircraftInstanceBindingClass> bindingClass = this.listAircrafts.ItemsSource as List<AircraftInstanceBindingClass>;

                var result = from one in bindingClass
                             where one.IsSelected
                             select one.AircraftInstance;

                return result;
            }

            return new AircraftInstance[] { };
            //throw new NotImplementedException();
        }
        private void AddData(AircraftInstance aircraft, TrendAnalysisViewModel viewModel)
        {
            var items = viewModel.ItemsMap[aircraft.AircraftNumber];

            var result1 = from one in items
                          where TrendAnalysisItem.Fields.Contains(one.ParameterID)
                          group one by one.FlightID into gp
                          select gp;

            foreach (var gp in result1)
            {
                TrendAnalysisItem trenditem = this.AssignOneItem(gp);

                trenditem.FlightDateTime = gp.First().FlightDate;
                trenditem.AircraftNumber = aircraft.AircraftNumber;

                viewModel.T6Collection.Add(trenditem);
                viewModel.TtCollection.Add(trenditem);
                viewModel.ViCollection.Add(trenditem);
                viewModel.NHCollection.Add(trenditem);
                viewModel.NCollection.Add(trenditem);
                viewModel.KBCollection.Add(trenditem);
                viewModel.HpCollection.Add(trenditem);
            }
        }
 private IEnumerable<AircraftInstance> GetSelectedAircrafts(TrendAnalysisViewModel viewModel)
 {
     throw new NotImplementedException();
 }