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 LoadLineFromFile(string filename)
 {
     ElectricityService.ElectricityServiceClient esc = new ElectricityService.ElectricityServiceClient();
     try
     {
         FileStream fs = new FileStream(filename, FileMode.Open);
         List<ElectricityService.ConfigLineInformation> LineList = new List<ElectricityService.ConfigLineInformation>();
         StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("gb2312"));
         string line;
         string[] paras;
         while (!sr.EndOfStream)
         {
             line = sr.ReadLine();
             paras = System.Text.RegularExpressions.Regex.Split(line, @"\s+");
             if (paras.Length == 19)
             {
                 int StationID_Start = esc.FindConfigStationInformationByStationName(paras[1]).ID;
                 int StationID_End = esc.FindConfigStationInformationByStationName(paras[2]).ID;
                 ElectricityService.ConfigLineInformation tmpLine = new ElectricityService.ConfigLineInformation();
                 tmpLine.LineName = paras[0];
                 tmpLine.StationID_Start = StationID_Start;
                 tmpLine.StationID_End = StationID_End;
                 tmpLine.VoltageLevel = double.Parse(paras[3]);
                 LineList.Add(tmpLine);
             }
         }
         foreach (ElectricityService.ConfigLineInformation tmpLine in LineList)
         {
             esc.AddConfigLineInformation(tmpLine);
         }
         esc.Close();
     }
     catch (TimeoutException)
     {
         MessageBox.Show("服务器请求超时");
         esc.Abort();
     }
 }
 private void Login()
 {
     ElectricityService.ElectricityServiceClient esc = new ElectricityService.ElectricityServiceClient();
     try
     {
         List<ElectricityService.ConfigStationInformation> StationList=esc.SelectConfigStationInformation().ToList();
         foreach (ElectricityService.ConfigStationInformation record in StationList)
         {
             StationUIList.Add(new StationUI()
             {
                 ID=record.ID,
                 StationName=record.StationName,
                 Longitude=record.Longitude,
                 Latitude=record.Latitude,
                 BuildTime=record.BuildTime,
                 VoltageLevel=record.VoltageLevel,
                 InstallCapacity=record.InstallCapacity
             });
         }
         ListViewStationList.Items.Clear();
         foreach(StationUI stationui in StationUIList)
             ListViewStationList.Items.Add(stationui);
         esc.Close();
     }
     catch (TimeoutException)
     {
         MessageBox.Show("服务器请求超时");
         esc.Abort();
     }
 }
 private void LoadDaysFromFiles(string[] filenames, DateTime StartDate)
 {
     ElectricityService.ElectricityServiceClient esc = new ElectricityService.ElectricityServiceClient();
     try
     {
         for (int i = 0; i < filenames.Length; i++)
         {
             DateTime TimeReady = StartDate + TimeSpan.FromDays(i);
             string filename = filenames[i];
             FileStream fs = new FileStream(filename, FileMode.Open);
             List<ElectricityService.RuntimeStationData> DataList = new List<ElectricityService.RuntimeStationData>();
             StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("gb2312"));
             string line;
             string[] paras;
             int istationid = 1, jrecordid = 0;
             while (!sr.EndOfStream)
             {
                 line = sr.ReadLine();
                 paras = System.Text.RegularExpressions.Regex.Split(line, @"\s+");
                 if (paras.Length == 3)
                 {
                     ElectricityService.RuntimeStationData tmpData = new ElectricityService.RuntimeStationData()
                     {
                         StationID = istationid,
                         ActivePower = double.Parse(paras[0]),
                         ReactivePower = double.Parse(paras[1]),
                         Time = TimeReady + TimeSpan.FromMinutes(15 * jrecordid)
                     };
                     DataList.Add(tmpData);
                     jrecordid++;
                     if (jrecordid >= 96)
                     {
                         jrecordid = 0;
                         istationid++;
                     }
                 }
             }
             foreach (ElectricityService.RuntimeStationData tmpData in DataList)
             {
                 esc.AddRuntimeStationData(tmpData);
             }
         }
         esc.Close();
     }
     catch (TimeoutException)
     {
         MessageBox.Show("服务器请求超时");
         esc.Abort();
     }
 }
 private void LoadBusFromFile(string filename)
 {
     ElectricityService.ElectricityServiceClient esc = new ElectricityService.ElectricityServiceClient();
     try
     {
         FileStream fs = new FileStream(filename, FileMode.Open);
         List<ElectricityService.ConfigStationInformation> StationList = new List<ElectricityService.ConfigStationInformation>();
         StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("gb2312"));
         string line;
         string[] paras;
         while (!sr.EndOfStream)
         {
             line = sr.ReadLine();
             paras = System.Text.RegularExpressions.Regex.Split(line, @"\s+");
             if (paras.Length == 5)
             {
                 ElectricityService.ConfigStationInformation tmpStation = new ElectricityService.ConfigStationInformation();
                 tmpStation.StationName = paras[1];
                 tmpStation.Longitude = double.Parse(paras[2]);
                 tmpStation.Latitude = double.Parse(paras[3]);
                 tmpStation.VoltageLevel = double.Parse(paras[4]);
                 StationList.Add(tmpStation);
             }
         }
         foreach (ElectricityService.ConfigStationInformation tmpStation in StationList)
         {
             esc.AddConfigStationInformation(tmpStation);
         }
         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();
     }
 }
 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 FetchAll()
 {
     ElectricityService.ElectricityServiceClient esc = new ElectricityService.ElectricityServiceClient();
     try
     {
         foreach (StationUI stationui in StationUIList)
         {
             List<ElectricityService.RuntimeStationData> DataList= esc.SelectRuntimeStationData(stationui.ID, DateTime.Today).ToList();
             if (DataList.Count == 0)
                 return;
             ElectricityService.RuntimeStationData LastRecord=null;
             foreach (ElectricityService.RuntimeStationData record in DataList)
             {
                 if (record.Time > DateTime.Now)
                     break;
                 LastRecord = record;
             }
             if (LastRecord != null)
             {
                 stationui.Active = LastRecord.ActivePower;
                 stationui.Reactive = LastRecord.ReactivePower;
                 stationui.RuntimeID = LastRecord.ID;
             }
         }
         ListViewStationList.UpdateLayout();
         DrawStations();
         esc.Close();
     }
     catch (TimeoutException)
     {
         MessageBox.Show("服务器请求超时");
         esc.Abort();
     }
 }