public OthersStepSecondsHandler(int startSecond, int endSecond, bool putIntoServer, AircraftDataAnalysisWinRT.DataModel.RawDataPointViewModel previewModel, AircraftDataAnalysisWinRT.Services.IDataReading dataReading) : base(startSecond, endSecond, putIntoServer, previewModel, dataReading) { }
public FastDataReadingStepHandler(int startSecond, int endSecond, bool putIntoServer, AircraftDataAnalysisWinRT.DataModel.RawDataPointViewModel previewModel, AircraftDataAnalysisWinRT.Services.IDataReading dataReading) { this.m_startSecond = startSecond; this.m_endSecond = endSecond; this.m_putIntoServer = putIntoServer; this.m_previewModel = previewModel; this.m_dataReading = dataReading; }
internal static FlightAnalysisSubViewModel Create( AircraftDataAnalysisWinRT.Domain.FlightAnalysisViewModel HostViewModel, FlightDataEntitiesRT.Flight flight, string hostParameterID) { FlightAnalysisSubViewModel viewModel = new FlightAnalysisSubViewModel() { ViewModel = HostViewModel }; viewModel.HostParameterID = hostParameterID; viewModel.CurrentStartSecond = flight.StartSecond; viewModel.CurrentEndSecond = flight.EndSecond; var dataEntities = AircraftDataAnalysisWinRT.Services.ServerHelper.GetData(flight, new string[] { hostParameterID }, flight.StartSecond, flight.EndSecond); return viewModel; }
public void SetCurrentViewModel(string flightID, AircraftDataAnalysisWinRT.Domain.FlightAnalysisViewModelOld viewModel) { string key = this.GetFlightViewModelKey(flightID); if (this.m_objectMap.ContainsKey(key)) { this.m_objectMap[key] = viewModel; } else { this.m_objectMap.Add(key, viewModel); } }
public void SetCurrentViewModel(FlightDataEntitiesRT.Flight flight, AircraftDataAnalysisWinRT.Domain.FlightAnalysisViewModelOld viewModel) { if (flight == null || string.IsNullOrEmpty(flight.FlightID)) { return; } SetCurrentViewModel(flight.FlightID, viewModel); }
public InitResourceObjectHandler(int startSecond, int endSecond, bool putIntoServer, AircraftDataAnalysisWinRT.DataModel.RawDataPointViewModel previewModel, AircraftDataAnalysisWinRT.Services.IDataReading dataReading, FastDataReadingResourceObject resourceObject) : base(startSecond, endSecond, putIntoServer, previewModel, dataReading) { }
private void GenerateStepHandlers(int startSecond, int endSecond, bool putIntoServer, AircraftDataAnalysisWinRT.DataModel.RawDataPointViewModel previewModel, List<StepSecondsFastDataReadingStepHandler> stepHandlers) { StepSecondsFastDataReadingStepHandler basicStepHandler = new BasicStepSecondsHandler(startSecond, endSecond, putIntoServer, previewModel, this) { CurrentFlight = this.Flight, Parameters = this.Parameters, ResourceObject = this.m_resourceObject }; stepHandlers.Add(basicStepHandler); StepSecondsFastDataReadingStepHandler decisionStepHandler = new DecisionStepSecondsHandler(startSecond, endSecond, putIntoServer, previewModel, this) { CurrentFlight = this.Flight, Parameters = this.Parameters, ResourceObject = this.m_resourceObject }; stepHandlers.Add(decisionStepHandler); StepSecondsFastDataReadingStepHandler levelRecordsStepHandler = new LevelRecordsStepSecondsHandler(startSecond, endSecond, putIntoServer, previewModel, this) { CurrentFlight = this.Flight, Parameters = this.Parameters, ResourceObject = this.m_resourceObject }; stepHandlers.Add(levelRecordsStepHandler); StepSecondsFastDataReadingStepHandler othersStepHandler = new OthersStepSecondsHandler(startSecond, endSecond, putIntoServer, previewModel, this) { CurrentFlight = this.Flight, Parameters = this.Parameters, ResourceObject = this.m_resourceObject }; stepHandlers.Add(othersStepHandler); }
/// <summary> /// 读取数据并入库 /// </summary> /// <param name="startSecond"></param> /// <param name="endSecond"></param> /// <param name="putIntoServer">是否入库</param> /// <param name="previewModel">如果需要返回预览模型则传入空Model,数据会直接写入此对象。传空则表示不需预览</param> public void ReadData(int startSecond, int endSecond, bool putIntoServer, AircraftDataAnalysisWinRT.DataModel.RawDataPointViewModel previewModel) { m_handlers.Clear(); FastDataReadingStepHandler deleteHandler = new DeleteExistsHandler(startSecond, endSecond, putIntoServer, previewModel, this) { CurrentFlight = this.Flight, Parameters = this.Parameters }; m_handlers.Add(deleteHandler); deleteHandler.DoWorkAsync();//1. m_resourceObject = new FastDataReadingResourceObject(); FastDataReadingStepHandler initHandler = new InitResourceObjectHandler(startSecond, endSecond, putIntoServer, previewModel, this, m_resourceObject) { CurrentFlight = this.Flight, Parameters = this.Parameters }; m_handlers.Add(initHandler); initHandler.DoWorkAsync();//1. ReadSecondsHandler readSecondsHandler = new ReadSecondsHandler(startSecond, endSecond, putIntoServer, previewModel, this) { CurrentFlight = this.Flight, Parameters = this.Parameters }; m_handlers.Add(readSecondsHandler); readSecondsHandler.StepHandlers = new List<StepSecondsFastDataReadingStepHandler>(); //把所有单步Handler返回来 GenerateStepHandlers(startSecond, endSecond, putIntoServer, previewModel, readSecondsHandler.StepHandlers); //加入总的Handler列表 m_handlers.AddRange(readSecondsHandler.StepHandlers); //最终执行顺序: //1.先执行Delete、Init,完成后可以开始所有StepHandler //2.启动StepHandlers全部,开始监听所有动作 //3.启动ReadSecondsHandler,里面对每一步的操作,都要激发StepHandlers的操作 //4.调用GetResult,等待所有操作完成,每个类的GetResult自行负责Finalize //2. 启动StepHandlers全部,开始监听所有动作 Parallel.ForEach(readSecondsHandler.StepHandlers, new Action<StepSecondsFastDataReadingStepHandler>( delegate(StepSecondsFastDataReadingStepHandler stepHandler) { try { stepHandler.DoWorkAsync(); } catch (Exception e) { LogHelper.Error(e); } })); //3. 启动ReadSecondsHandler,里面对每一步的操作,都要激发StepHandlers的操作 readSecondsHandler.DoWorkAsync(); //4.调用GetResult,等待所有操作完成,每个类的GetResult自行负责Finalize Parallel.ForEach(m_handlers, new Action<FastDataReadingStepHandler>(delegate(FastDataReadingStepHandler handler) { string result = string.Empty; try { result = handler.GetResult(); } catch (Exception ee) { result = ee.Message + "\r\n" + ee.StackTrace; } if (!string.IsNullOrEmpty(result)) { LogHelper.Error(new Exception(result)); } })); //所有操作完成 return; }
private async void LoadDatas(AircraftDataAnalysisWinRT.MyControl.SubEditChartNavigationParameter parameter) { List<string> pids = new List<string>(); if (this.SerieGroup == null) this.SerieGroup = new FlightAnalysisChartGroupSubExtendedViewModel(); await this.UserThreadInvoker.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() => { this.SerieGroup.Serie1Definition = new SerieDefinitionViewModel() { ParameterID = parameter.HostParameterID, //ParameterCaption = ApplicationContext.Instance.GetFlightParameterCaption(parameter.HostParameterID), //ForegroundBrush = AircraftDataAnalysisGlobalPallete.Brushes[0] }; })); pids.Add(parameter.HostParameterID); if (parameter.RelatedParameterIDs != null && parameter.RelatedParameterIDs.Length > 0) { if (parameter.RelatedParameterIDs.Length > 0) { await this.UserThreadInvoker.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() => { this.SerieGroup.Serie2Definition = new SerieDefinitionViewModel() { ParameterID = parameter.RelatedParameterIDs[0].RelatedParameterID }; })); pids.Add(parameter.RelatedParameterIDs[0].RelatedParameterID); } if (parameter.RelatedParameterIDs.Length > 1) { await this.UserThreadInvoker.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() => { this.SerieGroup.Serie3Definition = new SerieDefinitionViewModel() { ParameterID = parameter.RelatedParameterIDs[1].RelatedParameterID }; })); pids.Add(parameter.RelatedParameterIDs[1].RelatedParameterID); } } Task<string> resultTask = this.DataLoader.LoadRawDataAsync(pids); await this.UserThreadInvoker.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler(() => { this.SerieGroup.DataSerie = new FlightAnalysisChartSerieViewModel(); this.LoadSimpleDataPoints(this.SerieGroup.DataSerie, pids[0], this.DataLoader, 0); if (pids.Count > 1) { this.LoadSimpleDataPoints(this.SerieGroup.DataSerie, pids[1], this.DataLoader, 1); } if (pids.Count > 2) { this.LoadSimpleDataPoints(this.SerieGroup.DataSerie, pids[2], this.DataLoader, 2); } //var raws1 = this.DataLoader.GetRawData(pids[0]); })); }
private async Task DebugSetZoomMode(AircraftDataAnalysisWinRT.MyControl.SubEditChartNavigationParameter parameter) { await this.UserThreadInvoker.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler( () => { this.SerieGroup.IsZoomMode = true; })); }
private async void InitializeCore( AircraftDataAnalysisWinRT.MyControl.SubEditChartNavigationParameter parameter) { //await this.DebugSetZoomMode(parameter); this.LoadDatas(parameter); ////GetChartPanels //await InitPanelViewModel(); //await this.DebugSetZoomMode(parameter); ////2. currentPanel //await SetCurrentPanelCore(); ////3. serie definitions //await FinishBySetSerieDefs(); //finish await Finish(); System.Diagnostics.Debug.WriteLine(string.Format("End analysis sub ViewModel :{0} ", DateTime.Now)); }
public Task<string> InitializeAsync(AircraftDataAnalysisWinRT.MyControl.SubEditChartNavigationParameter parameter) { if (m_task == null) { Task<string> task = Task.Run<string>( new Func<string>(() => { try { this.InitializeCore(parameter); } catch (Exception e) { LogHelper.Error(e); return e.Message; } return string.Empty; })); m_task = task; } return m_task; }