Skip to content

Instantly share code, notes, and snippets.

View gaufung's full-sized avatar
Focusing

Fung Kao gaufung

Focusing
View GitHub Profile
public class Logger<T> : ILogger<T>
{
private readonly ILogger _logger;
public Logger(ILoggerFactory factory)
{
if (factory == null)
{
throw new ArgumentNullException(nameof(factory));
}
public void ConfigureService(IServiceCollection services)
{
service.AddSingleton<MyService>(sp => {
ILoggerFactory loggerFactory = sp.GetService<ILoggerFactory>();
MyService service = new MyServcie(loggerFactory);
return service;
}
}
@gaufung
gaufung / ModuloVsFastRange.cs
Created January 13, 2021 06:09
ModuloVsFastRange benchmark.cs
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Jobs;
using BenchmarkDotNet.Running;
using System;
namespace FastRangeBenchmark
{
class Program
{
static void Main(string[] args)
@gaufung
gaufung / LoginPartial.cshtml
Created September 27, 2020 08:04
SignIn with login partial
@using System.Security.Principal
<ul class="navbar-nav">
@if (User.Identity.IsAuthenticated)
{
<li class="nav-item">
<span class="navbar-text text-dark">Hello @User.Identity.Name</span>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignOut">Sign Out</a>
@gaufung
gaufung / appsetting.json
Created September 27, 2020 08:01
sign-in appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"AzureAd": {
@gaufung
gaufung / install_package.sh
Created September 27, 2020 07:59
Install packages
Install-Package Microsoft.Identity.Web -Version 0.4.0-preview
Install-Package Microsoft.Identity.Web.UI -Version 0.4.4-preview
@gaufung
gaufung / generate_jwt.js
Created September 20, 2020 10:27
Generate a JWT using javascript
const crypto = require('crypto')
# header
const header = { "alg": "HS256", "typ": "JWT" }
const encodedHeader = Buffer.from(JSON.stringify(header)).toString('base64')
# payload
const payload = { username: 'Flavio' }
const encodedPayload = Buffer.from(JSON.stringify(payload)).toString('base64')
# signature
const jwtSecret = 'secretKey'
const signature = crypto.createHmac('sha256', jwtSecret).update(encodedHeader + '.' + encodedPayload).digest('base64')
@gaufung
gaufung / calculator_cli_main.cs
Created September 13, 2020 08:34
Calculator CLI Main
static void Main(string[] args)
{
var lexer = new Lexer.Lexer(input);
var parser = new Parser.Parser(lexer);
var expression = parser.Parse();
var result = Evaluate.Evaluator.Eval(expression);
Console.Out.Write(result.Inspect());
}
@gaufung
gaufung / calculator_evaluator.cs
Created September 13, 2020 08:32
Calculator Evaluator
// Evalutor.cs
public class Evaluator
{
public static Object.Object Eval(Expression expression)
{
if(expression is AST.IntegerExpression)
{
return new Object.IntegerObject { Value = ((IntegerExpression)expression).Value };
}
if(expression is AST.PrefixExpression)
@gaufung
gaufung / calculator_evaluation_object.cs
Created September 13, 2020 08:31
Calculator Evaluation Object
// Object.cs
public abstract class Object
{
public abstract ObjectType Type();
public abstract string Inspect();
}
// IntegerObject.cs
public class IntegerObject : Object
{
public long Value { get; set; }