first commit
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Kafka.Lib.Auth.Model;
|
||||
|
||||
public class ClaimChagesModel
|
||||
{
|
||||
public ClaimModel? Old { get; set; }
|
||||
public ClaimModel? New { get; set; }
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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>
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Kafka.Lib;
|
||||
|
||||
public class KafkaConfig
|
||||
{
|
||||
public string? BootstrapServers { get; set; }
|
||||
public string? TopicRoot { get; set; }
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user