public ViewModelStationStat(IList <TankModel> tanks, MqttClient _statPublicClient) { this.statPublicClient = _statPublicClient; StationStat _StationStatData = new StationStat(); _StationStatData.StationName = tanks[0].StationName; stationId = tanks[0].StationId; _StationStatData.StatDate = DateTime.Now; _StationStatData.StatEndDate = _StationStatData.StatDate.AddMinutes(30); this.stationStatData = _StationStatData; FuelStat fuelStat = new FuelStat(); BusinessHelper.InitConnection(); DataTable dtFuel = BusinessHelper.ListAllFuel(); Hashtable hashFuel = new Hashtable(); foreach (DataRow _row in dtFuel.Rows) { long FuelId = Convert.ToInt64(_row["fuelid"]); String FuelDesc = _row["fueldesc"].ToString(); hashFuel.Add(FuelId, FuelDesc); } List <FuelStatRecord> fuelStatList = tanks .GroupBy(t => t.FuelId) .Select(ct => new FuelStatRecord() { FuelName = (String)hashFuel[(Int64)ct.First().FuelId], FuelPumpTotal = (UInt64)ct.Sum(p => (decimal)p.TankPumpTotal), Capacity = (UInt64)ct.Sum(c => c.Capacity), } ).ToList(); this._StatData = new ObservableCollection <FuelStat>(); foreach (var fs in fuelStatList) { FuelStat _fuelStat = new FuelStat(); _fuelStat.FuelName = fs.FuelName; _fuelStat.MeasuredCapacity = fs.Capacity; _fuelStat.MeasuredTotal = fs.FuelPumpTotal; _StatData.Add(_fuelStat); } this.PrintCommand = new RelayCommand(DoPrintStationStat); }
private void DoPrintStationStat(object ignore) { ViewModelStationStatReport vmStationStatReport = new ViewModelStationStatReport(); Model.StationStat _StationStat = new StationStat(); _StationStat.StationName = stationStatData.StationName; _StationStat.StatDate = DateTime.Now; _StationStat.StatEndDate = _StationStat.StatDate.AddMinutes(30); _StationStat.StaffName = stationStatData.StaffName; _StationStat.StaffPos = stationStatData.StaffPos; _StationStat.StaffName2 = stationStatData.StaffName2; _StationStat.StaffPos2 = stationStatData.StaffPos2; _StationStat.StaffName3 = stationStatData.StaffName3; _StationStat.StaffPos3 = stationStatData.StaffPos3; _StationStat.StaffName4 = stationStatData.StaffName4; _StationStat.StaffPos4 = stationStatData.StaffPos4; _StationStat.StaffName5 = stationStatData.StaffName5; _StationStat.StaffPos5 = stationStatData.StaffPos5; String _statGuidId = String.Empty; if (StatData.Count > 0) { _statGuidId = Guid.NewGuid().ToString(); } else { System.Windows.MessageBox.Show("No Fuel in Stat Report!!!", "Stat Report", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error); return; } foreach (var fs in StatData) { BusinessHelper.InsertStatTicket(_statGuidId, fs.FuelName, fs.MeasuredCapacity, fs.NotedCapacity, fs.MeasuredTotal, fs.NotedTotal, _StationStat.StatDate); if (fs.FuelName.Contains(@"A92")) { _StationStat.BeginPumpA92 = fs.NotedTotal; _StationStat.EndPumpA92 = fs.MeasuredTotal; _StationStat.NotedA92 = fs.NotedCapacity; _StationStat.MeasA92 = fs.MeasuredCapacity; } else if (fs.FuelName.Contains(@"A95")) { _StationStat.BeginPumpA95 = fs.NotedTotal; _StationStat.EndPumpA95 = fs.MeasuredTotal; _StationStat.NotedA95 = fs.NotedCapacity; _StationStat.MeasA95 = fs.MeasuredCapacity; } else if (fs.FuelName.Contains(@"05S")) { _StationStat.BeginPumpDO005S = fs.NotedTotal; _StationStat.EndPumpDO005S = fs.MeasuredTotal; _StationStat.NotedDO005S = fs.NotedCapacity; _StationStat.MeasDO005S = fs.MeasuredCapacity; } else if (fs.FuelName.Contains(@"02S")) { _StationStat.BeginPumpDO025S = fs.NotedTotal; _StationStat.EndPumpDO025S = fs.MeasuredTotal; _StationStat.NotedDO025S = fs.NotedCapacity; _StationStat.MeasDO025S = fs.MeasuredCapacity; } else if (fs.FuelName.Contains(@"E5")) { _StationStat.BeginPumpE5 = fs.NotedTotal; _StationStat.EndPumpE5 = fs.MeasuredTotal; _StationStat.NotedE5 = fs.NotedCapacity; _StationStat.MeasE5 = fs.MeasuredCapacity; } else if (fs.FuelName.Contains(@"KO")) { _StationStat.BeginPumpKO = fs.NotedTotal; _StationStat.EndPumpKO = fs.MeasuredTotal; _StationStat.NotedKO = fs.NotedCapacity; _StationStat.MeasKO = fs.MeasuredCapacity; } } vmStationStatReport.StationStatData = _StationStat; String _pubData = String.Format(@"{{""ticketId"": ""{0}"" , ""stationId"": {1} }}", _statGuidId, this.stationId); this.statPublicClient.Publish(@"statticket/", Encoding.UTF8.GetBytes(_pubData), MqttMsgBase.QOS_LEVEL_AT_LEAST_ONCE, false); View.StationStatReportWindow stationStatReportWnd = new View.StationStatReportWindow(); stationStatReportWnd.DataContext = vmStationStatReport; stationStatReportWnd.Show(); }
public ViewModelStationStat() { stationStatData = new StationStat(); }
//private double GetPositionAngle(StationStat forecast, ISSPosition position) //{ //} private void AddMarker(StationStat forecast, ISSPosition startPosition, Color color) { SpotData spotData; // ArrorMarkerControl rectangle; Point point; spotData = this.GetSpotData(forecast.Start, forecast.Brightness); var rectangle = new ArrorMarkerControl { Width = 120, Height = 450 }; // new Rectangle { Width = 90, Height = 90, RadiusX = 90, RadiusY = 60, Fill = new SolidColorBrush(color) }; // var rectangle =new Rectangle { Width = 90, Height = 90, RadiusX = 90, RadiusY = 60, Fill = new SolidColorBrush(color) }; arPanel.Children.Add(rectangle); point = new Point(startPosition.Altitute, startPosition.Azimuth); ARPanel.SetDirection(rectangle, point); rectangle.DataContext = spotData; //rectangle.Tap += (s, e) => //{ //}; }