Пропускает в цикле while условие в if и сразу переходит к else
Я начинающий разработчик-самоучка. Я разрабатываю телеграмм-бота, который будет присылать уведомление пользователям при изменении даты у файла с FTP сервера.Вместе с уведомлением у меня происходит обновление базы данных. Моя проблема заключается в том, что когда я обновляю данные о файле на FTP сервере, то до перезапуска консоли моё значение не передаётся в базу данных. Таймер должен перезапускать ту часть кода, что отвечает за сравнение файла из бд с файла с FTP.
Вот код:
private static async Task DataBaseInsertFtp(ITelegramBotClient botClient, Update update)
{
string path = "";
using (StreamReader reader = new StreamReader(path))
{
string connection = reader.ReadLine();
string login = reader.ReadLine();
string password = reader.ReadLine();
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(connection);
request.Credentials = new NetworkCredential(login, password);
request.Method = WebRequestMethods.Ftp.GetDateTimestamp;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Console.WriteLine("Последнее время обновления: {0}", response.LastModified);
const double interval = 0.1 * 60 * 1000;
System.Timers.Timer timer = new System.Timers.Timer(interval);
timer.Interval = interval;
timer.AutoReset = true;
timer.Enabled = true;
timer.Elapsed += async (sender, e) =>
{
string connectionString = @"";
string sqlExpressionSelect = $"SELECT * FROM DateFileFTP";
using (SqlConnection connectionFTP = new SqlConnection(connectionString))
{
await connectionFTP.OpenAsync();
SqlCommand command = new SqlCommand(sqlExpressionSelect, connectionFTP);
SqlDataReader readerFTP = await command.ExecuteReaderAsync();
{
while (await readerFTP.ReadAsync())
{
DateTime DateFile = Convert.ToDateTime(readerFTP["DateFile"]);
string sqlExpressionUpdate = $"UPDATE DateFileFTP SET DateFile = ('{response.LastModified}')";
if (DateFile != response.LastModified)
{
SqlCommand commandUpdate = new SqlCommand(sqlExpressionUpdate, connectionFTP);
commandUpdate.CommandText = sqlExpressionUpdate;
int number = await commandUpdate.ExecuteNonQueryAsync();
await Database.DataBaseOutput(botClient, update);
Console.WriteLine($"Обновлено объектов: {number}");
}
else
{
Console.WriteLine("Обновление не произошло");
}
}
}
}
};
}
}