Created
May 22, 2021 15:04
-
-
Save dkreider/374c19c08b0479344c40d683c723cdd9 to your computer and use it in GitHub Desktop.
Learn how to create a base controller in ASP.NET core here - https://danielk.tech
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Threading.Tasks; | |
using Microsoft.AspNetCore.Mvc; | |
using Microsoft.EntityFrameworkCore; | |
namespace BaseController.Controllers | |
{ | |
[ApiController] | |
public class BaseController<TEntity> : ControllerBase where TEntity : BaseModel | |
{ | |
protected readonly BaseControllerDBContext _context; | |
protected DbSet<TEntity> _dbSet { get; set; } | |
public BaseController(BaseControllerDBContext context) | |
{ | |
_context = context; | |
_dbSet = _context.Set<TEntity>(); | |
} | |
[HttpGet] | |
public virtual async Task<IEnumerable<TEntity>> GetAllAsync() | |
{ | |
return await _dbSet.ToListAsync(); | |
} | |
[HttpGet("{id}")] | |
public virtual async Task<TEntity> GetAsync(Guid id) | |
{ | |
return await _dbSet.Where(e => e.Id == id).FirstOrDefaultAsync(); | |
} | |
[HttpDelete("{id}")] | |
public virtual async Task DeleteAsync(Guid id) | |
{ | |
var entity = await _dbSet.Where(e => e.Id == id).FirstOrDefaultAsync(); | |
_dbSet.Remove(entity); | |
await _context.SaveChangesAsync(); | |
} | |
[HttpPost] | |
public virtual async Task<TEntity> CreateAsync(TEntity entity) | |
{ | |
await _dbSet.AddAsync(entity); | |
await _context.SaveChangesAsync(); | |
return entity; | |
} | |
[HttpPost] | |
public virtual async Task<TEntity> UpdateAsync(TEntity entity) | |
{ | |
_dbSet.Update(entity); | |
await _context.SaveChangesAsync(); | |
return entity; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment