如何用API中的数据重构数据库连接方法- c#



我试图改变我的数据库连接方法与数据从API,并希望删除连接到数据库。

这是我的数据库连接,我想用API的数据替换数据库中的数据。

public IEnumerable<AlertLevel> DataBaseConnection(int mapCode)
{
string ConnectionString = "server=192.168.1.1;uid=user;port=3333;pwd=password;database=dbName;";
MySqlConnection Conn = new MySqlConnection(ConnectionString);
var listAlert = new List<AlertLevel>();
try
{
Conn.Open();
//replace(2) with mapCode
string query = "CALL Get_Alert_levels_Station(" + mapCode + ");";
MySqlCommand myCommand = new MySqlCommand(query, Conn);
MySqlDataReader myReader;
myReader = myCommand.ExecuteReader();
try
{
while (myReader.Read())
{
var currentData = new AlertLevel()
{
dateForecast = myReader.GetDateTime(0),
levelForecast = myReader.GetInt32(1)
};
listAlert.Add(currentData);
}
}
finally
{
myReader.Close();
Conn.Close();
}
}
catch (Exception ex)
{
Console.WriteLine("Database Connection", "Not Connected ..." + Environment.NewLine + ex.ToString(), "OK");
}
return listAlert;
}

这是我的API数据的方法:

string GenerateRequestUri(string endpoint)
{
string requestUri = endpoint;
requestUri += $"?id=16";
return requestUri;
}
string GenerateRequestUriStations(string endpoint)
{
string requestUri = endpoint;
requestUri += $"stations";
return requestUri;
}

public WaterBindingData GetData()
{
var reusult = _restServiceData.GetWaterDataForecast(GenerateRequestUriStations(Constants.EndPoint), GenerateRequestUri(Constants.EndPoint));

foreach (var item in reusult.WaterData.Ardaforecast[0].Items)
{
item.DateTimeForecast.ToString();
item.AlertLevelForecast.ToString();
}
return reusult;
}

我想把里面的DataBaseConnection方法我的API逻辑,并希望把item.DateTimeForecast.ToString();item.AlertLevelForecast.ToString();AlertLevel,我也不知道如何把动态变量在GenerateRequestUri(string endpoint):requestUri += $"?id=16";16必须是mapCode

我假设你想做这样的事情

string GenerateRequestUri(string endpoint, mapCode)
{
string requestUri = endpoint;
requestUri += $"?id={mapCode}";
return requestUri;
}
public IEnumerable<AlertLevel> GetDataFromAPI(int mapCode)
{
var listAlert = new List<AlertLevel>();
var reusult = _restServiceData.GetWaterDataForecast(GenerateRequestUriStations(Constants.EndPoint), GenerateRequestUri(Constants.EndPoint), mapCode);

foreach (var item in reusult.WaterData.Ardaforecast[0].Items)
{
var currentData = new AlertLevel()
{
dateForecast = item.DateTimeForecast.ToString(),
levelForecast = item.AlertLevelForecast.ToString()
};
listAlert.Add(currentData);
}
return listAlert;
}

相关内容

最新更新