Skip to content

Instantly share code, notes, and snippets.

@lavn0
lavn0 / JsonUtility.cs
Last active September 3, 2026 14:32
Redmine Web API sample
using System.Text.Json;
namespace RedmineWorkHours
{
internal static class JsonUtility
{
public static readonly JsonSerializerOptions DefaultOptions = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
};
@lavn0
lavn0 / CsvModel.tt
Last active August 3, 2026 14:24
C# CsvResource Load Test
<#@ template language="C#" debug="false" hostspecific="true" #>
<#@ output extension=".cs" #>
<#@ assembly name="System" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Collections.Generic" #>
<#
var headerFile = Path.Combine(Path.GetDirectoryName(Host.TemplateFile), "headers.txt");
@lavn0
lavn0 / AnalyzeTest.cs
Created September 11, 2025 13:55
Analyze Function to PlantUML
// C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\Roslyn\Microsoft.CodeAnalysis.dll
// C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\Roslyn\Microsoft.CodeAnalysis.CSharp.dll
// C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\Roslyn\System.Collections.Immutable.dll
// C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\System.Reflection.Metadata.dll
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using System.Diagnostics;
using System.Reflection.Metadata;
@lavn0
lavn0 / .vscode_tasks.json
Created April 15, 2025 16:22
vscodeで現在日時でメモを作成する
{
"version": "2.0.0",
"tasks": [
{
"label": "createMeetingNote",
"type": "shell",
"command": ".vscode/createNote.sh",
"args": [
"_メモ",
"${input:name}"
require 'minitest/autorun'
require 'yaml'
require_relative "../lib/ypath.rb"
class TestYPath < Minitest::Test
def setup
end
def test_ypath
@lavn0
lavn0 / run_fxcop.bat
Created October 23, 2018 15:46
ソリューションファイルを指定してコード分析結果を出力する方法。FxCopCmd.exeではDLLすべてのパスを渡す必要がある。
@SET DT=%TIME: =0%
@SET DT=%DT::=%
@SET DT=%DATE:/=-%-%DT:~0,6%
@SET MSBUILD=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe
@SET SOLUTION=SampleSolution.sln
@SET LOGDIR=LOG
@MKDIR "%LOGDIR%" >nul 2>&1
"%MSBUILD%" "%SOLUTION%" /t:ReBuild /verbosity:q /p:Configuration=Release;RunCodeAnalysis=true;CodeAnalysisOutputToConsole=true > %DT%_out.log
[TestClass]
public class UnitTest1
{
[DataTestMethod]
[DataRow(1, "001")]
[DataRow(2, "002")]
[DataRow(3, "003")]
public void Test1(int num, string str)
{
Assert.AreEqual(str, num.ToString("D3"));
@lavn0
lavn0 / SetUtil.cs
Created January 29, 2018 16:12
組み合わせとか順列とか
public static class SetUtil
{
/// <summary>組み合わせ</summary>
public static IEnumerable<IEnumerable<T>> Combination<T>(this IEnumerable<T> items, int r)
{
if (r == 0)
{
yield return Enumerable.Empty<T>();
yield break;
}
for /d %i in (*) do @( echo %i & dir "%i" /a-d /s /b | find /c /v "" & echo. )
@lavn0
lavn0 / Toast.cs
Created January 18, 2017 11:45
トースト通知のサンプル実装(Windows8.1以降)
using System.Diagnostics;
using Windows.UI.Notifications;
namespace ToastTest
{
public static class Toast
{
private static readonly ToastNotifier toastNotifier;
private static ToastNotification toastNotification;