Skip to content

Instantly share code, notes, and snippets.

@czinegeroland
czinegeroland / OrderStateMachine.cs
Created March 9, 2025 18:30
OrderStateMachine.cs
public class OrderStateMachine : MassTransitStateMachine<OrderState>
{
public State PaymentProcessing { get; private set; }
public State PaymentProcessingFailed { get; private set; }
public State Shipping { get; private set; }
public State ShippingFailed { get; private set; }
public Event<OrderSubmitted> OrderSubmitted { get; private set; }
@czinegeroland
czinegeroland / Program.cs
Last active March 16, 2025 16:30
Program.cs
builder.Services.AddMassTransit(busConfigurator =>
{
ConnectionFactory.DefaultAddressFamily = AddressFamily.InterNetwork;
busConfigurator
.AddSagaStateMachine<OrderStateMachine, OrderState>()
.Endpoint(_ => _.AddConfigureEndpointCallback((context, cfg) =>
{
cfg.UseMessageRetry(_ => _.Immediate(1));
cfg.UseInMemoryInboxOutbox(context);
@czinegeroland
czinegeroland / program.cs
Created March 10, 2025 19:18
Publish OrderSubmitted
app.MapGet("/submitOrder", async ([FromServices] IPublishEndpoint publishEndpoint) =>
{
await publishEndpoint.Publish(new OrderSubmitted
{
OrderId = NewId.NextGuid(),
});
return;
});
@czinegeroland
czinegeroland / scaledobject.yaml
Created March 13, 2025 20:30
scaledobject.yaml
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: consumer-scaledobject
namespace: default
spec:
scaleTargetRef:
name: consumer
minReplicaCount: 0
maxReplicaCount: 3
@czinegeroland
czinegeroland / program.cs
Last active March 13, 2025 21:04
program.cs
app.MapGet("/submitOrders-parallel/{messageCount:int}", async (
[FromRoute] int messageCount,
[FromServices] IPublishEndpoint publishEndpoint) =>
{
var messages = Enumerable.Range(0, messageCount)
.Select(_ => publishEndpoint.Publish(new OrderSubmitted
{
OrderId = NewId.NextGuid(),
})
);
@czinegeroland
czinegeroland / Dockerfile
Last active March 14, 2025 17:43
Dockerfile
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER $APP_UID
WORKDIR /app
EXPOSE 8080
EXPOSE 8081
# This stage is used to build the service project
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
pipelines:
default:
- step:
runs-on:
- self.hosted
- linux
script:
@czinegeroland
czinegeroland / PID_Formula.md
Last active October 24, 2025 21:15
PID_Formula

$$ u(t) = K_p \cdot e(t) + K_i \int_0^t e(\tau),d\tau + K_d \cdot \frac{de(t)}{dt} $$

@czinegeroland
czinegeroland / PID_Discrete-time.m
Created October 24, 2025 21:34
PID_Discrete-time
error = Setpoint - current_value;
% PID calculations
proportional = P * error;
integral = integral + (I * error * dt);
derivative = D * (error - previous_error) / dt;
@czinegeroland
czinegeroland / PidTuningAgent.cs
Created October 25, 2025 11:07
PidTuningAgent.cs
// Build Semantic Kernel with OpenAI chat completion
var builder = Kernel.CreateBuilder();
builder.AddOpenAIChatCompletion("gpt-5-nano", apiKey);
var kernel = builder.Build();
var chatCompletion = _kernel.GetRequiredService<IChatCompletionService>();
// Initialize chat history with system prompt
var chatHistory = new ChatHistory();
chatHistory.AddSystemMessage(PromtsHelper.GetSystemPrompt());