first commit

This commit is contained in:
2025-02-26 23:42:19 +01:00
commit 777ea98be1
283 changed files with 88266 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
using System.Text.Json;
using System.Text.Json.Serialization;
using Confluent.Kafka;
namespace Kafka.Lib.Auth;
public class LogOutMessageType : IMessageType
{
public List<string?>? Tokens { get; set; }
public string? UserName { get; set; }
public string? Id { get; set; }
public string EventType { get; init; } = "Logout";
[JsonIgnore]
public string Text
{
get => JsonSerializer.Serialize(this);
set
{
if (string.IsNullOrEmpty(value))
{
var obj = JsonSerializer.Deserialize<LogOutMessageType>(value);
if (obj != null)
{
Tokens = obj.Tokens;
UserName = obj.UserName;
Id = obj.Id;
}
}
}
}
}
+7
View File
@@ -0,0 +1,7 @@
namespace Kafka.Lib.Auth.Model;
public class ClaimChagesModel
{
public ClaimModel? Old { get; set; }
public ClaimModel? New { get; set; }
}
+8
View File
@@ -0,0 +1,8 @@
namespace Kafka.Lib.Auth.Model;
public class ClaimModel
{
public string? ClaimType { get; set; }
public string? ClaimValue { get; set; }
public string? ClaimIssuer { get; set; }
}
+30
View File
@@ -0,0 +1,30 @@
using Newtonsoft.Json;
using JsonSerializer = System.Text.Json.JsonSerializer;
namespace Kafka.Lib.Auth.Model
{
public class PrivilageModel
{
public string? Id { get; set; }
public string? PrivilageName { get; set; }
[JsonIgnore]
public string Text
{
get => JsonSerializer.Serialize(this);
set
{
if (!string.IsNullOrWhiteSpace(value))
{
var obj = JsonSerializer.Deserialize<PrivilageModel>(value);
if (obj != null)
{
Id = obj.Id;
PrivilageName = obj.PrivilageName;
}
}
}
}
}
}
@@ -0,0 +1,37 @@
using System.Text.Json;
using System.Text.Json.Serialization;
using Kafka.Lib.Auth.Model;
namespace Kafka.Lib.Auth;
public class PermisionChangeMassageType : IMessageType
{
public PrivilageModel? PrivilageModel { get; set; }
public Dictionary<string, string> Changes { get; set; } = new();
public string? Id { get; set; }
public string? EventType { get; } = "PermisionChange";
[JsonIgnore]
public string Text
{
get
{
return JsonSerializer.Serialize(this);
}
set
{
if (!string.IsNullOrWhiteSpace(value))
{
var obj = JsonSerializer.Deserialize<PermisionChangeMassageType>(value);
if (obj != null)
{
PrivilageModel = obj.PrivilageModel;
Changes = obj.Changes;
}
}
}
}
}
@@ -0,0 +1,39 @@
using System.Text.Json;
using System.Text.Json.Serialization;
using Kafka.Lib.Auth.Model;
namespace Kafka.Lib.Auth;
public class RegisterNewServiceMessageType : IMessageType
{
public string? ServiceName { get; set; }
public string? ServiceAccountUserName { get; set; }
public List<string>? ServicePrivilage { get; set; }
public string? Id { get; set; }
public string? EventType { get; } = "RegisterNewService";
[JsonIgnore]
public string Text
{
get
{
return JsonSerializer.Serialize(this);
}
set
{
if (!string.IsNullOrWhiteSpace(value))
{
var obj = JsonSerializer.Deserialize<RegisterNewServiceMessageType>(value);
if (obj != null)
{
ServiceName = obj.ServiceName;
ServiceAccountUserName = obj.ServiceAccountUserName;
ServicePrivilage = obj.ServicePrivilage;
}
}
}
}
}
@@ -0,0 +1,33 @@
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Kafka.Lib.Auth;
public class TokenValidationMessageType : IMessageType
{
public string? Token { get; set; }
public string? Mess { get; set; }
public string? Id { get; set; }
public string? EventType { get; } = "TokenNotValid";
[JsonIgnore]
public string Text
{
get => JsonSerializer.Serialize(this);
set
{
if (!string.IsNullOrWhiteSpace(value))
{
var obj = JsonSerializer.Deserialize<TokenValidationMessageType>(value);
if (obj != null)
{
Token = obj.Token;
Mess = obj.Mess;
}
}
}
}
}
@@ -0,0 +1,65 @@
using System.Text.Json;
using System.Text.Json.Serialization;
using Kafka.Lib.Auth.Model;
namespace Kafka.Lib.Auth;
public class UserChangeClaimsMessageType : IMessageType
{
private string? _userId;
private List<ClaimChagesModel>? _claimChages;
private string? _id;
private bool _isSuccess = false;
private Dictionary<string,string> _errors = new ();
public string? UserId
{
get => _userId;
set => _userId = value;
}
public List<ClaimChagesModel>? ClaimChages
{
get => _claimChages;
set => _claimChages = value;
}
public string? Id
{
get => _id;
set => _id = value;
}
public string? EventType { get; } = "UserChangeClaims";
public bool IsSuccess
{
get => _isSuccess;
set => _isSuccess = value;
}
public Dictionary<string, string> Errors
{
get => _errors;
set => _errors = value;
}
[JsonIgnore]
public string Text
{
get => JsonSerializer.Serialize(this);
set
{
if (!string.IsNullOrEmpty(value))
{
var obj = JsonSerializer.Deserialize<UserChangeClaimsMessageType>(value);
if (obj != null)
{
UserId = obj.UserId;
ClaimChages = obj.ClaimChages;
}
}
}
}
}
+49
View File
@@ -0,0 +1,49 @@
using System.Net.Http.Headers;
using System.Text.Json;
using System.Text.Json.Serialization;
using Confluent.Kafka;
namespace Kafka.Lib.Auth;
public class UserChangeMessageType : IMessageType
{
private string? _userId;
private Dictionary<string, string> _changes = new Dictionary<string, string>();
private string? _id;
private readonly string _eventType = "NewUser";
public string? UserId
{
get => _userId;
set => _userId = value;
}
public Dictionary<string, string> Changes
{
get => _changes;
set => _changes = value;
}
public string? Id
{
get => _id;
set => _id = value;
}
public string EventType => _eventType;
[JsonIgnore]
public string Text
{
get => JsonSerializer.Serialize(this);
set
{
var val = JsonSerializer.Deserialize<UserChangeMessageType>(value);
if (val == null) throw new MessageNullException();
_changes = val.Changes;
_userId = val.UserId;
_id = val.Id;
}
}
}
+13
View File
@@ -0,0 +1,13 @@
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Kafka.Lib;
public interface IMessageType
{
public string? Id { get; set; }
public string? EventType { get; }
[JsonIgnore]
public string Text { get; }
}
+15
View File
@@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Confluent.Kafka" Version="2.6.0" />
<PackageReference Include="Confluent.SchemaRegistry" Version="2.6.0" />
<PackageReference Include="MassTransit.Kafka" Version="8.3.1" />
</ItemGroup>
</Project>
+7
View File
@@ -0,0 +1,7 @@
namespace Kafka.Lib;
public class KafkaConfig
{
public string? BootstrapServers { get; set; }
public string? TopicRoot { get; set; }
}
+17
View File
@@ -0,0 +1,17 @@
using System.Text;
using Confluent.Kafka;
using Newtonsoft.Json;
using JsonSerializer = System.Text.Json.JsonSerializer;
namespace Kafka.Lib.Unity;
public class MessageTypeSerializer<T> : ISerializer<T>
where T : IMessageType
{
public byte[] Serialize(T data, SerializationContext context)
{
var returnByte = JsonSerializer.SerializeToUtf8Bytes(data);
return returnByte;
}
}
@@ -0,0 +1,31 @@
using System.Text.Json;
using Kafka.Lib.Warehouse.Model;
namespace Kafka.Lib.Warehouse;
public class InventoryChangeMessageType : IMessageType
{
public int ChangeRecordCount { get; set; }
public List<InventoryChangeModel> InventoryChanges { get; set; } = new();
public string? Id { get; set; }
public string? EventType { get; } = "InventoryChange";
public string Text
{
get => JsonSerializer.Serialize(this);
set
{
if (string.IsNullOrEmpty(value))
{
var obj = JsonSerializer.Deserialize<InventoryChangeMessageType>(value);
if (obj != null)
{
InventoryChanges = obj.InventoryChanges;
ChangeRecordCount = obj.ChangeRecordCount;
}
}
}
}
}
@@ -0,0 +1,35 @@
using System.Text.Json;
using Kafka.Lib.Auth.Model;
namespace Kafka.Lib.Warehouse;
public class ItemClaimChangeMessageType : IMessageType
{
public string? ItemId { get; set; }
public List<ClaimChagesModel>? Chages { get; set; }
public string? Id { get; set; }
public string? EventType { get; } = "ItemClaimChange";
public string Text
{
get
{
return JsonSerializer.Serialize(this);
}
set
{
if (string.IsNullOrEmpty(value))
{
var obj = JsonSerializer.Deserialize<ItemClaimChangeMessageType>(value);
if (obj != null)
{
ItemId = obj.ItemId;
Chages = obj.Chages;
}
}
}
}
}
@@ -0,0 +1,7 @@
namespace Kafka.Lib.Warehouse.Model;
public class InventoryChangeModel
{
public InventoryChangeModel? Old { get; set; }
public InventoryChangeModel? New { get; set; }
}
@@ -0,0 +1,8 @@
namespace Kafka.Lib.Warehouse.Model;
public class InventoryModel
{
public string? ItemId { get; set; }
public string? InventoryId { get; set; }
public string? Position { get; set; }
}
@@ -0,0 +1,34 @@
using System.Text.Json;
namespace Kafka.Lib.Warehouse;
public class ProducerChangeMessageType : IMessageType
{
public string? ProducerId { get; set; }
public Dictionary<string, string> Changes { get; set; } = new();
public string? Id { get; set; }
public string? EventType { get; } = "ProducerChange";
public string Text
{
get
{
return JsonSerializer.Serialize(this);
}
set
{
if (string.IsNullOrEmpty(value))
{
var obj = JsonSerializer.Deserialize<ProducerChangeMessageType>(value);
if (obj != null)
{
ProducerId = obj.ProducerId;
Changes = obj.Changes;
}
}
}
}
}
@@ -0,0 +1,31 @@
using System.Text.Json;
namespace Kafka.Lib.Warehouse;
public class WarehouseChangeMessageType : IMessageType
{
public string? WarehouseId { get; set; }
public Dictionary<string, string> Changes { get; set; } = new();
public string? Id { get; set; }
public string? EventType { get; } = "WarehouseChange";
public string Text
{
get => JsonSerializer.Serialize(this);
set
{
if (string.IsNullOrEmpty(value))
{
var obj = JsonSerializer.Deserialize<WarehouseChangeMessageType>(value);
if (obj != null)
{
WarehouseId = obj.WarehouseId;
Changes = obj.Changes;
}
}
}
}
}