internal void Update(object sender, CeUpdateEvent e) { App.Current.Dispatcher.Invoke((System.Action) delegate { UpdateTime = DateTime.Now.ToString(); ClearAll(); Times = new ObservableCollection <string>(); Income = new ObservableCollection <double>(); FluidLevel = new ObservableCollection <float>(); Flows = new ObservableCollection <PumpsFlows>(); Hours = new ObservableCollection <PumpsHours>(); foreach (var item in e.Times) { Times.Add(item); Data.Times.Add(item); } foreach (var item in e.Income) { Income.Add(item); Data.Income.Add(item); } foreach (var item in e.FluidLevel) { FluidLevel.Add(item); Data.FluidLevel.Add(item); } foreach (var item in e.Flows) { Flows.Add(Mapper.Map <PumpsFlows>(item)); Data.Flows.Add(Mapper.Map <PumpsFlows>(item)); } foreach (var item in e.Hours) { Hours.Add(Mapper.Map <PumpsHours>(item)); Data.Hours.Add(Mapper.Map <PumpsHours>(item)); } AddGraphicValuesToIncome(); DrawCharts(); }); }
public Task Handle(CeUpdateEvent message, IMessageHandlerContext context) { ceUpdate.Invoke(this, message); return(Task.CompletedTask); }
private void Update(CeForecast forecastResult, List <double> weather) { CeUpdateEvent update = new CeUpdateEvent(); update.Income = new List <double>(); for (int i = 0; i < weather.Count; i++) { double integralIncome = 0; for (int j = 0; j < 4; j++) { integralIncome += weather[i] / 4; update.Income.Add(integralIncome); } } update.Times = GetTimes(); update.FluidLevel = new List <float>(); foreach (var item in forecastResult.Results) { update.FluidLevel.Add(item.StartFluidLevel); update.FluidLevel.Add(item.EndFluidLevel); } update.Hours = new List <PumpsHours>(); update.Flows = new List <PumpsFlows>(); graph = new CeGraphicalEvent(); graph.PumpsValues = new Core.Common.ServiceBus.Events.CeGraph(); List <List <long> > list = new List <List <long> >(); for (int i = 0; i < points; i++) { var macList = new List <long>(); long cumm = 0; var hours = new PumpsHours(); var flows = new PumpsFlows(); foreach (var item in forecastResult.Results) { if (item.Pumps[i] == 1) { hours.Hours.Add(item.Times[i]); flows.Flows.Add(item.Flows[i]); cumm += (long)(item.Times[i]); } else { hours.Hours.Add(0); flows.Flows.Add(0); } macList.Add(cumm); } update.Hours.Add(hours); update.Flows.Add(flows); list.Add(macList); } pubsub.SendMessage(new Core.Common.PubSub.PubSubMessage() { ContentType = Core.Common.PubSub.ContentType.CE_UPDATE, Content = JsonTool.Serialize <CeUpdateEvent>(update), Sender = Core.Common.PubSub.Sender.CE }).GetAwaiter().GetResult(); if (points == 1) { graph.PumpsValues.Pump1.XAxes = update.Times.ConvertAll(x => DateTime.Parse(x)); graph.PumpsValues.Pump1.YAxes = list[0]; } if (points == 2) { graph.PumpsValues.Pump1.XAxes = update.Times.ConvertAll(x => DateTime.Parse(x)); graph.PumpsValues.Pump1.YAxes = list[0]; graph.PumpsValues.Pump2.XAxes = update.Times.ConvertAll(x => DateTime.Parse(x)); graph.PumpsValues.Pump2.YAxes = list[1]; } if (points == 3) { graph.PumpsValues.Pump1.XAxes = update.Times.ConvertAll(x => DateTime.Parse(x)); graph.PumpsValues.Pump1.YAxes = list[0]; graph.PumpsValues.Pump2.XAxes = update.Times.ConvertAll(x => DateTime.Parse(x)); graph.PumpsValues.Pump2.YAxes = list[1]; graph.PumpsValues.Pump3.XAxes = update.Times.ConvertAll(x => DateTime.Parse(x)); graph.PumpsValues.Pump3.YAxes = list[2]; } }