Hello,
I would like to know how can I use DbContext with dependency injection in my asp.net web api. I am getting Type 'EPINMiddleWareAPI.Controllers.InitiatesController' does not have a default constructor.
Here is my sample code:
Here is my controller:
I would like to know how can I use DbContext with dependency injection in my asp.net web api. I am getting Type 'EPINMiddleWareAPI.Controllers.InitiatesController' does not have a default constructor.
Here is my sample code:
C#:
public class EPINMiddleWareAPIContext : DbContext
{
public EPINMiddleWareAPIContext() : base("name=EPINMiddleWareAPIContext")
{
}
public DbSet<InitiateRequest> InitiatesRequests { get; set; }
public DbSet<InitiateResponse> InitiateResponses { get; set; }
}
Here is my controller:
C#:
[RoutePrefix("api/v2/pin")]
public class InitiatesController : ApiController
{
private EPINMiddleWareAPIContext context;
public InitiatesController(EPINMiddleWareAPIContext context)
{
this.context = context;
}
// POST: api/Game
[HttpPost, Route("initiation")]
public async Task<IHttpActionResult> PostInitiate(InitiateRequest initiate)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
context.InitiatesRequests.Add(initiate);
await context.SaveChangesAsync();
HttpClient httpClient = new HttpClient();
HttpContent content = new StringContent(
JsonConvert.SerializeObject(initiate),
Encoding.UTF8,
"application/json"
);
HttpResponseMessage response =
await httpClient.PostAsync("https://test.com/purchaseinitiation", content);
string htmlResponse = await response.Content.ReadAsStringAsync();
return Ok(htmlResponse);
}
protected override void Dispose(bool disposing)
{
context.Dispose();
base.Dispose(disposing);
}
}