Skip to content

Instantly share code, notes, and snippets.

@dileno
dileno / BlogPost.cs
Last active September 12, 2019 09:00
BlogPost
public class BlogPost
{
[Key]
public int PostId { get; set; }
[Required]
public string Creator { get; set; }
[Required]
public string Title { get; set; }
@dileno
dileno / BlogPostsContext.cs
Last active September 12, 2019 10:27
BlogPostsContext
public class BlogPostsContext : DbContext
{
public BlogPostsContext (DbContextOptions<BlogPostsContext> options)
: base(options)
{
}
public DbSet<BlogPost> BlogPosts { get; set; }
}
@dileno
dileno / BlogPostsController.cs
Last active September 12, 2019 10:26
BlogPostsController
[Route("api/[controller]")]
[Produces("application/json")]
[ApiController]
public class BlogPostsController : ControllerBase
{
private readonly BlogPostsContext _context;
public BlogPostsController(BlogPostsContext context)
{
_context = context;
@dileno
dileno / DataRepository.cs
Last active September 12, 2019 10:24
DataRepository
public class DataRepository<T> : IDataRepository<T> where T : class
{
private readonly BlogPostsContext _context;
public DataRepository(BlogPostsContext context)
{
_context = context;
}
public void Add(T entity)
@dileno
dileno / IDataRepository.cs
Created September 12, 2019 10:19
IDataRepository
public interface IDataRepository<T> where T : class
{
void Add(T entity);
void Update(T entity);
void Delete(T entity);
Task<T> SaveAsync(T entity);
}
@dileno
dileno / BlogPostsController.cs
Created September 12, 2019 11:03
BlogPostsController (updated with Data Repository)
[Produces("application/json")]
[Route("api/[controller]")]
[ApiController]
public class BlogPostsController : ControllerBase
{
private readonly BlogPostsContext _context;
private readonly IDataRepository<BlogPost> _repo;
public BlogPostsController(BlogPostsContext context, IDataRepository<BlogPost> repo)
{
@dileno
dileno / BlogPostsController.cs sample
Created September 12, 2019 11:06
BlogPostsController Data repository sample
_repo.Add(blogPost);
var save = await _repo.SaveAsync(blogPost);
@dileno
dileno / appSettings.json
Last active September 12, 2019 14:47
appSettings
"ConnectionStrings": {
"BlogPostsContext": "Server=(localdb)\\mssqllocaldb;Database=BlogPostContext-d08fc301-dc66-44e2-8e02-b408c55da2cf;Trusted_Connection=True;MultipleActiveResultSets=true"
}
@dileno
dileno / Startup.cs
Last active September 13, 2019 20:22
ConfigureServices method
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
services.AddDbContext<BlogPostsContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("BlogPostsContext")));
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
@dileno
dileno / Startup.cs
Last active September 13, 2019 20:23
Configure method
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();