private void ButtonPushChart_Click(object sender, RoutedEventArgs e)
 {
     TemplateWebBrowserChart.JavaScript("pushdata", 0, RandomSeed.Next() % 30);
     TemplateWebBrowserChart.JavaScript("pushdata", 1, RandomSeed.Next() % 30);
     TemplateWebBrowserChart.JavaScript("pushdata", 2, RandomSeed.Next() % 30);
     TemplateWebBrowserChart.JavaScript("pushdata", 3, RandomSeed.Next() % 30);
 }
 private void Forecast(int StationID, DateTime TargetDate)
 {
     ElectricityService.ElectricityServiceClient esc = new ElectricityService.ElectricityServiceClient();
     try
     {
         this.Dispatcher.Invoke(new Action(() => { WriteLine("[BGW_ForeCast]正在生成预测数据:{0}...", StationID); }));
         esc.Forecast(StationID, DateTime.Now);
         this.Dispatcher.Invoke(new Action(() => { WriteLine("[BGW_ForeCast]预测数据生成完毕:{0}", StationID); }));
         this.Dispatcher.Invoke(new Action(() => { WriteLine("[UI]正在填充预测数据:{0}...", StationID); }));
         if (RadioForecastPointToPoint.IsChecked ?? false)
         {
             TemplateWebBrowserChart.JavaScript("DeleteData", "PointToPoint");
             List <ElectricityService.ForecastDayStationData> DataList = esc.SelectForecastDayStationData(StationID, DateTime.Now, 1).ToList();
             foreach (ElectricityService.ForecastDayStationData record in DataList)
             {
                 TemplateWebBrowserChart.JavaScript("AddData", "PointToPoint", record.Time.ToString("yyyy-MM-dd HH:mm:ss"), record.ActivePower);
             }
         }
         if (RadioForecastSmooth.IsChecked ?? false)
         {
             TemplateWebBrowserChart.JavaScript("DeleteData", "Smooth");
             List <ElectricityService.ForecastDayStationData> DataList = esc.SelectForecastDayStationData(StationID, DateTime.Now, 2).ToList();
             foreach (ElectricityService.ForecastDayStationData record in DataList)
             {
                 TemplateWebBrowserChart.JavaScript("AddData", "Smooth", record.Time.ToString("yyyy-MM-dd HH:mm:ss"), record.ActivePower);
             }
         }
         if (RadioForecastDayGray.IsChecked ?? false)
         {
             TemplateWebBrowserChart.JavaScript("DeleteData", "DayGray");
             List <ElectricityService.ForecastDayStationData> DataList = esc.SelectForecastDayStationData(StationID, DateTime.Now, 3).ToList();
             foreach (ElectricityService.ForecastDayStationData record in DataList)
             {
                 TemplateWebBrowserChart.JavaScript("AddData", "DayGray", record.Time.ToString("yyyy-MM-dd HH:mm:ss"), record.ActivePower);
             }
         }
         if (RadioForecastVariationCoefficient.IsChecked ?? false)
         {
             TemplateWebBrowserChart.JavaScript("DeleteData", "VariationCoefficient");
             List <ElectricityService.ForecastDayStationData> DataList = esc.SelectForecastDayStationData(StationID, DateTime.Now, 4).ToList();
             foreach (ElectricityService.ForecastDayStationData record in DataList)
             {
                 TemplateWebBrowserChart.JavaScript("AddData", "VariationCoefficient", record.Time.ToString("yyyy-MM-dd HH:mm:ss"), record.ActivePower);
             }
         }
         this.Dispatcher.Invoke(new Action(() => { WriteLine("[UI]填充预测数据完毕:{0}", StationID); }));
         esc.Close();
     }
     catch (TimeoutException)
     {
         MessageBox.Show("服务器请求超时");
         esc.Abort();
     }
 }
 private void UpdateAll()
 {
     ElectricityService.ElectricityServiceClient esc = new ElectricityService.ElectricityServiceClient();
     try
     {
         foreach (StationUI stationui in StationUIList)
         {
             List <ElectricityService.RuntimeStationData> DataList = esc.UpdateRuntimeStationData(stationui.RuntimeID, stationui.ID).ToList();
             if (DataList.Count == 0)
             {
                 return;
             }
             ElectricityService.RuntimeStationData LastRecord = null;
             foreach (ElectricityService.RuntimeStationData record in DataList)
             {
                 if (record.Time > DateTime.Now)
                 {
                     break;
                 }
                 if (ListViewStationList.SelectedItem == stationui)
                 {
                     TemplateWebBrowserChart.JavaScript("AddData", "runtime", record.Time.ToString("yyyy-MM-dd HH:mm:ss"), record.ActivePower);
                 }
                 LastRecord = record;
             }
             if (LastRecord != null)
             {
                 stationui.Active    = LastRecord.ActivePower;
                 stationui.Reactive  = LastRecord.ReactivePower;
                 stationui.RuntimeID = LastRecord.ID;
                 this.Dispatcher.Invoke(new Action(() => { WriteLine("[BGW_UpdateRuntime]数据已更新:{0}", stationui.ID); }));
             }
         }
         ListViewStationList.UpdateLayout();
         esc.Close();
     }
     catch (TimeoutException)
     {
         MessageBox.Show("服务器请求超时");
         esc.Abort();
     }
 }
        private void ListViewStationList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            TemplateWebBrowserChart.JavaScript("DeleteData", "runtime");
            if (ListViewStationList.SelectedItem == null)
            {
                return;
            }
            StationUI stationui = ListViewStationList.SelectedItem as StationUI;

            MapCenter = new Point(stationui.Longitude, stationui.Latitude);
            ElectricityService.ElectricityServiceClient esc = new ElectricityService.ElectricityServiceClient();
            try
            {
                this.Dispatcher.Invoke(new Action(() => { WriteLine("[UI]正在请求当日历史数据:{0}", stationui.ID); }));
                List <ElectricityService.RuntimeStationData> DataList = esc.SelectRuntimeStationData(stationui.ID, DateTime.Today).ToList();
                this.Dispatcher.Invoke(new Action(() => { WriteLine("[UI]当日历史数据请求完毕:{0}", stationui.ID); }));
                if (DataList.Count == 0)
                {
                    return;
                }
                foreach (ElectricityService.RuntimeStationData record in DataList)
                {
                    if (record.Time > DateTime.Now)
                    {
                        break;
                    }
                    TemplateWebBrowserChart.JavaScript("AddData", "runtime", record.Time.ToString("yyyy-MM-dd HH:mm:ss"), record.ActivePower);
                }
                Forecast(stationui.ID, DateTime.Today);
                esc.Close();
            }
            catch (TimeoutException)
            {
                MessageBox.Show("服务器请求超时");
                esc.Abort();
            }
        }