Написать открытый конструктор для класса DAL.
public class DAL
{
private readonly IConfiguration config;
public DAL(IConfiguration config)
{
this.config = config;
}
public List<Uservaluesfull> GetUservalues(string SID)
{
string PathwayConnString = config.GetConnectionString("PathwayConnString");
//var SID = user.FindFirst("onprem_sid")?.Value;
List<Uservaluesfull> values = new List<Uservaluesfull>();
using (SqlConnection myConnection = new SqlConnection(PathwayConnString))
{
SqlCommand myCommand = new SqlCommand("usp_GetUserInfo", myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter SIDParameter = myCommand.Parameters.Add("SID", SqlDbType.NVarChar, 100);
SIDParameter.Value = SID;
myConnection.Open();
using (SqlDataReader oReader = myCommand.ExecuteReader())
{
while (oReader.Read())
{
Uservaluesfull s = new Uservaluesfull();
DATA here
values.Add(s);
}
myConnection.Close();
}
}
return values;
}
}
Контроллер будет похож на.
public class UserValuesController : Controller
{
private readonly DAL _dal;
public UserValuesController(DAL dal)
{
_dal = dal;
}
[HttpGet("[action]")]
public List<Uservaluesfull> Get()
{
var SID = User.FindFirst("onprem_sid")?.Value;
return new _dal.GetUservalues(SID);
}
}
Также создайте интерфейс IDAL.
public interface IDAL
{
List<Uservaluesfull> GetUservalues(string SID);
}
Тогда,добавьте их в класс запуска.
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddTransient<IDAL, DAL>();
}