git_bsmd/bsmd.database/DatabaseEntityAsync.cs

48 lines
1.3 KiB
C#

// Copyright (c) 2023-present schick Informatik
// Description: Async variant of DatabaseEntity
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace bsmd.database
{
public abstract class DatabaseEntityAsync : DatabaseEntity
{
protected abstract DatabaseEntityAsync ReadRowFromReader(IDataReader reader);
public async Task<List<DatabaseEntityAsync>> LoadListAsync(SqlDataReader reader)
{
List<DatabaseEntityAsync> result = new List<DatabaseEntityAsync>();
if (reader != null)
{
while (await reader.ReadAsync())
{
result.Add(ReadRowFromReader(reader));
}
reader.Close();
}
return result;
}
public override List<DatabaseEntity> LoadList(IDataReader reader)
{
List<DatabaseEntity> result = new List<DatabaseEntity>();
if (reader != null)
{
while (reader.Read())
{
result.Add(ReadRowFromReader(reader));
}
reader.Close();
}
return result;
}
}
}