public void StartModels(string measurementId) { measurementRepository.Delete(x => x.MeasurementId == measurementId); var measurement = new Measurement { MeasurementId = measurementId }; measurementRepository.Add(measurement); foreach (var model in models) { Logging.Debug("Starting model {0} for measurement {1}", model.Name, measurementId); model.Start(measurementId, messageQueue); Logging.Debug("Finished model {0} for measurement {1}", model.Name, measurementId); } }
protected override DataStreamUnit[] _Execute(DataStreamUnit[] source) { try { if (!_initialized) { _forecast = new Forecast() { ForecastModelId = this.ForecastModelId }; _measurement = repository.FirstOrDefault(x => x.MeasurementId == this.MeasurementId); if (_measurement == null) { _measurement = new Measurement {MeasurementId = this.MeasurementId}; } _measurement.Forecasts.Add(_forecast); _initialized = true; } var data = source.ToList(); var result = new ForecastResult(); if (data[0].Values.ContainsKey("MAPE")) { result.Error = data[0].Values["MAPE"] as double?; } result.TimeStamp = (DateTime)data[0].Values["TimeStamp"]; result.RealValue = data[0].Values["Value"] as double?; result.PredictedValue = data[0].Values["PredictedValue"] as double?; _forecast.Error = result.Error; _forecast.Results.Add(result); repository.Update(_measurement); } catch (Exception e) { Logging.Info(e.Message); } return source; }