Common library for Mizekar microservices including logging, Swagger, authentication, permissions, features, security, helpers, and extensions.
$ dotnet add package Mizekar.Commonکتابخانه مشترک برای تمام پروژههای بکاند Mizekar که شامل قابلیتهای مشترک مانند Logging، Swagger، Middleware، Exception Handling، Authentication، Permissions، Features و Helper classes میباشد.
Mizekar.Common/
├── Authentication/ # Authentication services (ICurrentUser, ICurrentWorkSpace, RequireAdminAttribute)
├── Exceptions/ # Exception classes و Global Exception Handler
├── Extensions/ # Extension methods (DateTime, IQueryable, Strings, ServiceCollection)
├── Features/ # Feature management (IFeatureService, RequireFeatureAttribute)
├── Helpers/ # Helper classes (FinancialNumberToWords, FormulaEval, ExportFiles)
├── Logging/ # Logging configuration و Middleware
├── Middleware/ # Custom middleware (Culture, ModelValidation, UserAndWorkSpaceHeader)
├── Permissions/ # Permission management (IPermissionService, RequirePermissionAttribute)
├── Security/ # Security services (ISecurityService)
└── Swagger/ # Swagger configuration extensions
در فایل .csproj پروژه خود:
<ItemGroup>
<ProjectReference Include="..\..\mizekar-common\Mizekar.Common\Mizekar.Common.csproj" />
</ItemGroup>
using Mizekar.Common.Logging;
using Mizekar.Common.Extensions;
using Mizekar.Common.Swagger;
var builder = WebApplication.CreateBuilder(args);
// Configure centralized logging
builder.Host.UseMizekarLogging("ServiceName");
// Add common services
builder.Services.AddMizekarCommonServices();
// Add Swagger
builder.Services.AddMizekarSwagger(
title: "API Title",
description: "API Description"
);
var app = builder.Build();
// Use Swagger
app.UseMizekarSwagger(routePrefix: "swagger");
// Use middleware
app.UseRequestHeaderLogging();
app.UseMiddleware<Mizekar.Common.Logging.RequestLoggingMiddleware>();
app.UseMiddleware<Mizekar.Common.Middleware.UserAndWorkSpaceHeaderMiddleware>();
app.UseCultureMiddleware();
app.UseExceptionHandler();
ICurrentUser و CurrentUser: مدیریت اطلاعات کاربر فعلیICurrentWorkSpace و CurrentWorkSpace: مدیریت workspace فعلیRequireAdminAttribute: Attribute برای محدود کردن دسترسی به adminIPermissionService: سرویس برای بررسی permissions از header X-PermissionsRequirePermissionAttribute: Attribute برای اعمال permission checkIFeatureService: سرویس برای بررسی features و limits از header X-FeaturesRequireFeatureAttribute: Attribute برای اعمال feature checkISecurityService: سرویس برای hash و GUID generationFinancialNumberToWords: تبدیل عدد به کلمات فارسیFormulaEval: ارزیابی فرمولهای ریاضی به صورت امنExportFiles: Export به Excel و PDFDateTimeExtensions: Parse تاریخ شمسی/میلادیDateTimeOffsetExtensions: تبدیل به زمان ایرانIQueryableExtensions: WhereIf و OrderBy2StringsExtensions: تبدیل اعداد فارسی/انگلیسی، GenerateCode، GenerateSlugProprietary - Mizekar