Skip to content

Instantly share code, notes, and snippets.

@mocella
mocella / pipeline.yml
Created December 31, 2024 15:15
Azure Pipeline Single-Instance Behavior
trigger: none
variables:
artifact.name: drop
vmImage: 'ubuntu-latest'
pool: 'DockerAgentPool'
buildConfiguration: 'release'
group: 'my-ado-variables'
@mocella
mocella / context.cs
Created November 4, 2024 14:40
EFCore Global Query Filter
public static void AddQueryFilter<T>(this EntityTypeBuilder entityTypeBuilder, Expression<Func<T, bool>> expression)
{
var parameterType = Expression.Parameter(entityTypeBuilder.Metadata.ClrType);
var expressionFilter = ReplacingExpressionVisitor.Replace(
expression.Parameters.Single(), parameterType, expression.Body);
var currentQueryFilter = entityTypeBuilder.Metadata.GetQueryFilter();
if (currentQueryFilter != null)
{
var currentExpressionFilter = ReplacingExpressionVisitor.Replace(
@mocella
mocella / gitversion.yml
Created August 26, 2024 12:04
Mainline Repo Gitversion Config
mode: Mainline
#
assembly-versioning-scheme: MajorMinorPatchTag
assembly-file-versioning-scheme: MajorMinorPatchTag
assembly-informational-format: '{InformationalVersion}'
#
major-version-bump-message: '\+semver:\s?(breaking|major)'
minor-version-bump-message: '\+semver:\s?(feature|minor)'
patch-version-bump-message: '\+semver:\s?(fix|patch)'
no-bump-message: '\+semver:\s?(none|skip)'
@mocella
mocella / gitcodechurn.py
Created May 7, 2024 12:25
Git Repo Code Churn
# clone this first:
# https://github.com/flacle/truegitcodechurn
python ./gitcodechurn.py after="2023-07-01" before="2023-10-31" author="" dir="/c/path/to/repo" -exdir="excluded-directory"
@mocella
mocella / finish-release.sh
Created February 16, 2024 14:47
Finish Release ADO Pipeline and Bash Script
#!/bin/bash
git --version
BUILD_SOURCE_BRANCH=$1
if [[ -z ${BUILD_SOURCE_BRANCH} ]]; then
echo "Null source branch"
exit 1
fi
git config --global user.email "[email protected]"
@mocella
mocella / HttpClientTestHelper.cs
Created May 25, 2023 11:53
.NET6 HttpClient Test Helper
using System.Net;
using System.Net.Http.Headers;
using Moq;
using Moq.Protected;
using Newtonsoft.Json;
namespace Example.Test.Helpers;
public class HttpClientTestHelper
{
@mocella
mocella / HttpClientLoggingHandler.cs
Created February 16, 2023 13:31
.NET HttpClient Delegating Handler to Log Request/Response details
public class HttpClientLoggingHandler: DelegatingHandler
{
private readonly ILogger _logger;
public HttpClientLoggingHandler(ILogger logger)
{
_logger = logger;
InnerHandler = new HttpClientHandler();
}
@mocella
mocella / HttpContextLoggingMiddleware.cs
Last active February 16, 2023 13:24
.NET6 Middleware to log HttpContext request/response details
public class HttpContextLoggingMiddleware
{
private readonly RequestDelegate _next;
private readonly ILogger _logger;
private const int BodyLogSizeLimit = 4096;
public HttpContextLoggingMiddleware(
RequestDelegate next,
ILogger logger)
{
@mocella
mocella / azure-pipelines.yml
Created November 9, 2022 13:37
Azure Pipeline Step to Scan for .NET Dependency CVEs
- task: PowerShell@2
displayName: "NuGet packages vulnerabilities scan"
continueOnError: false
inputs:
filePath: '$(Build.SourcesDirectory)/nuget-vunerability-build-fail-report.ps1'
arguments: '''$(Build.SourcesDirectory)'' ''$(SolutionName)'''
pwsh: true
@mocella
mocella / ClearBinObjFolders.ps1
Created April 12, 2019 18:17
Recursively clear .Net bin/obj folders with PowerShell
Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }