Skip to content

Instantly share code, notes, and snippets.

private T GetContext<T>() where T : DbContext
{
var options = new DbContextOptionsBuilder<T>().UseNpgsql(connection).Options;
return (T) typeof(T).GetConstructor(new Type[] { typeof(DbContextOptions<T>) }).Invoke(new object[] { options });
}
/// <summary>
/// Copy every matching property from source -> target
/// </summary>
/// <param name="target"></param>
/// <param name="source"></param>
public static void Slurp(this object target, object source)
{
target.GetType()
.GetProperties()
.Where(p => p.SetMethod != null)
@tluyben
tluyben / retry.cs
Created March 18, 2020 18:53
retry after error
const int RETRIES = 3;
void Retry(Action f)
{
for (int i = 0; i < RETRIES; i++)
{
try
{
f();
}
@tluyben
tluyben / explainquery.pl
Created January 15, 2020 12:09
explain all mysql queries in log
#!/usr/bin/perl
# enable query log for mysql
open(F, "tail -f ~/query.log|");
while(<F>){
chomp;
if (/\d+\s+Execute\s+(select.*)$/igsm) {
print "\n\nQuery: $1 : \n";
$qry = $1;
$qry =~ s/\`/\\\`/isgm;
@tluyben
tluyben / ListView.cs
Created December 12, 2019 15:10
ListView with Checkbox - not working
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using System.Collections.Generic;
using System.Linq;
using Avalonia.Data;
using Avalonia.Controls.Templates;
using Avalonia.Controls.Primitives;
using System;
namespace Playground
@tluyben
tluyben / ListView.cs
Created December 12, 2019 09:51
Avalonia dynamic list (with Dictionary)
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using System.Collections.Generic;
using System.Linq;
using Avalonia.Data;
using Avalonia.Controls.Templates;
namespace Playground
{
public class ListItem
public static string PrintStructure(this VisualElement obj, string indent = "")
{
if (obj == null) return "";
var ot = obj.GetType().GetTypeInfo();
var s = indent + ot.Name + " [";
if (obj.StyleId != null && obj.StyleId.Length > 0)
{
@tluyben
tluyben / backup.sh
Created March 10, 2019 09:17
automatically update wp
#!/bin/bash
export PATH=/usr/local/wp-cli/bin:$PATH
[[ $@ =~ ^\/home\/(.*?)\/www ]];
cp updatewp_user.sh $@
cd $@
echo $@
chown -R ${BASH_REMATCH[1]}.${BASH_REMATCH[1]} .
iptables -I INPUT -p tcp ! -s x.x.x.x --dport 8545 -j DROP
@tluyben
tluyben / FindType.cs
Created September 9, 2018 01:53
Type.GetType(string t) without having the full name
foreach (var a in AppDomain.CurrentDomain.GetAssemblies())
{
foreach(var _t in a.GetTypes())
{
if (_t.Name == t)
{
return _t;
}
}
}