Skip to content

Instantly share code, notes, and snippets.

View evan-boissonnot's full-sized avatar
🏠
Working from home

Evan BOISSONNOT evan-boissonnot

🏠
Working from home
View GitHub Profile
@evan-boissonnot
evan-boissonnot / Startup.cs
Created March 22, 2019 08:43
Configuration Startup.cs
public void ConfigureServices(IServiceCollection services)
{
const string corsUrlKey = "Security:Cors:Url";
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.SaveToken = true;
@evan-boissonnot
evan-boissonnot / Startup.cs
Created March 22, 2019 09:13
JwtBearer configuration, with issuer and audience validation
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.SaveToken = true;
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
@evan-boissonnot
evan-boissonnot / UserController.cs
Created March 22, 2019 09:28
AUthenticate user and generate new JWT token
/// <summary>
/// Controller to log, create user
/// </summary>
[Authorize]
[Route("api/[Controller]")]
[ApiController]
public class UserController : ControllerBase
{
#region Fields
private IConfiguration _configuration = null;
@evan-boissonnot
evan-boissonnot / Droide.sql
Created March 28, 2019 23:26
Création d'un Droide
CREATE TABLE [dbo].[Droide](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Matricule] [varchar](250) NOT NULL,
CONSTRAINT [PK_Droide] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
@evan-boissonnot
evan-boissonnot / histoire.sql
Created March 29, 2019 15:42
Debut de création d'une histoire
USE [JeuDontOnEstLeHeros.database.dev]
GO
DECLARE @PARAGRAPHE_IDs TABLE(ID INT);
DECLARE @QUESTION_IDs TABLE(ID INT);
INSERT [dbo].[Paragraphe]
OUTPUT inserted.ID INTO @PARAGRAPHE_IDs(ID)
SELECT 1,
'Un début intriguant',
@evan-boissonnot
evan-boissonnot / DefaultIntegrationTest.cs
Last active April 11, 2019 08:38
Default class to create an integration unit test
public class DefaultIntegrationTest : IClassFixture<WebApplicationFactory<Startup>>
{
#region Fields
private WebApplicationFactory<Startup> _factory = null;
#endregion
#region Constructors
public DefaultIntegrationTest(WebApplicationFactory<Startup> factory) => this._factory = factory;
#endregion
}
@evan-boissonnot
evan-boissonnot / DefaultIntegrationTestV1.cs
Last active April 11, 2019 09:00
First example of an integration unit test with c# .net core
using BookMyCourses.API.Web.UI;
using BookMyCourses.API.Web.UI.Models;
using Microsoft.AspNetCore.Mvc.Testing;
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Xunit;
namespace Tests.Integrations
{
@evan-boissonnot
evan-boissonnot / UserDataLayer.cs
Created April 19, 2019 07:37
UserDataLayer with Entity DataContext and SignInManager
public class UserDataLayer
{
#region Fields
private SignInManager<User> _signInManager = null;
#endregion
#region Constructors
public UserDataLayer(DefaultContext context, SignInManager<User> signInManager) : base(context)
{
this._signInManager = signInManager;
@evan-boissonnot
evan-boissonnot / FakeSignInManager.cs
Created April 19, 2019 09:47
SignInManager and FakeUserManager to mock login in DataLayer
using BookMyCourses.API.Core.Models;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Moq;
using System;
using System.Collections.Generic;
using System.Text;
@evan-boissonnot
evan-boissonnot / UserDataLayerUnitTest.cs
Last active April 19, 2019 10:23
Mock DataContext in Memory and Mocking SignInManager
using BookMyCourses.API.Core.DataLayers.Database;
using BookMyCourses.API.Core.Interfaces.Models;
using BookMyCourses.API.Core.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Options;
using Moq;
using System;
using System.Collections.Generic;