public DailyConsumptionDetail GetTodaysDailyConsumptionDetails(SqlConnection sqlConnection, SqlTransaction sqlTransaction, string powerScout, PiServer piServer) { var query = "select top(1) Breaker_details, Timestamp, Building, Temperature, PowerScout, Visibility from DailyConsumptionDetails where PowerScout = @param1 and CAST(Timestamp AS DATE) = @param2 and PiServerName = @PiServerName"; DailyConsumptionDetail detailConsumptionDetail = null; using (SqlCommand sqlCommand = new SqlCommand(query, sqlConnection, sqlTransaction)) { sqlCommand.Parameters.AddWithValue("@param1", powerScout); sqlCommand.Parameters.AddWithValue("@param2", piServer.PiServerCurrentDateTime.AddDays(-1).Date.ToString("yyyy-MM-dd")); sqlCommand.Parameters.AddWithValue("@PiServerName", piServer.PiServerName); using (SqlDataReader result = sqlCommand.ExecuteReader()) { while (result.Read()) { detailConsumptionDetail = new DailyConsumptionDetail(); detailConsumptionDetail.Breaker_details = SqlTypeConverter.ToString(result["Breaker_details"]); detailConsumptionDetail.Timestamp = SqlTypeConverter.ToDateTime(result["Timestamp"]); detailConsumptionDetail.Temperature = SqlTypeConverter.ToDouble(result["Temperature"]); detailConsumptionDetail.Building = SqlTypeConverter.ToString(result["Building"]); detailConsumptionDetail.PowerScout = SqlTypeConverter.ToString(result["PowerScout"]); detailConsumptionDetail.Visibility = SqlTypeConverter.ToDouble(result["Visibility"]); } result.Close(); } } return(detailConsumptionDetail); }
public List <DailyConsumptionDetail> GetDailyConsumptionDetails(SqlConnection sqlConnection, SqlTransaction sqlTransaction, string powerScout, string piServerName, DateTime?timestamp = null) { var query = "select Breaker_details, Timestamp, Building, Temperature, PowerScout, Visibility from DailyConsumptionDetails where PowerScout = @param1 and PiServerName = @PiServerName"; if (timestamp.HasValue) { query += " And Timestamp > @param2"; } var detailConsumptionDetails = new List <DailyConsumptionDetail>(); DailyConsumptionDetail detailConsumptionDetail = null; using (SqlCommand sqlCommand = new SqlCommand(query, sqlConnection, sqlTransaction)) { sqlCommand.Parameters.AddWithValue("@param1", powerScout); sqlCommand.Parameters.AddWithValue("@PiServerName", piServerName); if (timestamp.HasValue) { sqlCommand.Parameters.AddWithValue("@param2", timestamp); } using (SqlDataReader result = sqlCommand.ExecuteReader()) { while (result.Read()) { detailConsumptionDetail = new DailyConsumptionDetail(); detailConsumptionDetail.Breaker_details = SqlTypeConverter.ToString(result["Breaker_details"]); detailConsumptionDetail.Timestamp = SqlTypeConverter.ToDateTime(result["Timestamp"]); detailConsumptionDetail.Temperature = SqlTypeConverter.ToDouble(result["Temperature"]); detailConsumptionDetail.Building = SqlTypeConverter.ToString(result["Building"]); detailConsumptionDetail.PowerScout = SqlTypeConverter.ToString(result["PowerScout"]); detailConsumptionDetail.Visibility = SqlTypeConverter.ToDouble(result["Visibility"]); detailConsumptionDetails.Add(detailConsumptionDetail); } result.Close(); } } return(detailConsumptionDetails); }
public async Task <AnomalyServiceResponse> GetAnomalyPrediction(DailyConsumptionDetail dailyConsumptionDetail, SqlConnection sqlConnection, SqlTransaction sqlTransaction, string piServerName, bool isDailyPrediction = true) { string predictionDate = dailyConsumptionDetail.Timestamp.ToString("yyyy-MM-ddTHH:mm:ssZ"); if (isDailyPrediction) { predictionDate = dailyConsumptionDetail.Timestamp.AddDays(1).ToString("yyyy-MM-ddTHH:mm:ssZ"); } AnomalyServiceRequest requestmodel = new AnomalyServiceRequest() { Inputs = new Inputs() { input1 = new Input1() { ColumnNames = new List <string> { "Id", "AMPS_SYSTEM_AVG", "Building", "Breaker_details", "Daily_electric_cost", "Daily_KWH_System", "Monthly_electric_cost", "Monthly_KWH_System", "PowerScout", "Temperature", "Timestamp", "Visibility", "kW_System", "PiServerName" }, Values = new List <List <string> > { new List <string> { "0", "0", dailyConsumptionDetail.Building, dailyConsumptionDetail.Breaker_details, "0", "0", "0", "0", dailyConsumptionDetail.PowerScout, dailyConsumptionDetail.Temperature.ToString(), predictionDate, dailyConsumptionDetail.Visibility.ToString(), "0", piServerName } } } } }; var azureMLConfigurationService = new AzureMLConfigurationService(); var predictionConfig = azureMLConfigurationService.GetPredictionConfigData(sqlConnection, sqlTransaction); return(await AzureMLClient.CallAzureMLAsync(requestmodel, predictionConfig.AzureMlDailyPredictionApiURL, predictionConfig.AzureMlDailyPredictionApiKey)); }