![]() |
VOOZH | about |
dotnet add package TurgayAcar.WebLibrary --version 1.5.0
NuGet\Install-Package TurgayAcar.WebLibrary -Version 1.5.0
<PackageReference Include="TurgayAcar.WebLibrary" Version="1.5.0" />
<PackageVersion Include="TurgayAcar.WebLibrary" Version="1.5.0" />Directory.Packages.props
<PackageReference Include="TurgayAcar.WebLibrary" />Project file
paket add TurgayAcar.WebLibrary --version 1.5.0
#r "nuget: TurgayAcar.WebLibrary, 1.5.0"
#:package TurgayAcar.WebLibrary@1.5.0
#addin nuget:?package=TurgayAcar.WebLibrary&version=1.5.0Install as a Cake Addin
#tool nuget:?package=TurgayAcar.WebLibrary&version=1.5.0Install as a Cake Tool
A comprehensive .NET 9 Class Library that provides generic methods, utilities, and operations for web development.
WebLibrary/
βββ Global.cs # Global constants and configuration
βββ Models/
β βββ ServiceResult.cs # Generic result wrapper
βββ Helpers/
β βββ HttpClientHelper.cs # HTTP client operations
β βββ ValidationHelper.cs # Data validation
βββ Extensions/
β βββ GenericExtensions.cs # Extension methods
βββ Utilities/
β βββ GenericUtilities.cs # Utility methods
βββ Services/
β βββ GenericServiceBase.cs # Base service class
βββ Security/
β βββ JwtTokenHelper.cs # JWT operations
β βββ PasswordHelper.cs # Password security
β βββ EncryptionHelper.cs # Encryption utilities
βββ DataProcessing/
β βββ CsvDataHelper.cs # CSV operations
β βββ ExcelHelper.cs # Excel operations
β βββ DataTransformationHelper.cs # Data transformation
β βββ BulkOperationsHelper.cs # Bulk operations
βββ Database/
βββ IDbConnectionFactory.cs # Connection factory interface
βββ SqlServerConnectionFactory.cs # SQL Server connection factory
βββ QueryBuilder.cs # SQL query builder
βββ IGenericRepository.cs # Repository interface
βββ DapperGenericRepository.cs # Dapper repository implementation
βββ IUnitOfWork.cs # Unit of work interface
βββ UnitOfWork.cs # Unit of work implementation
βββ DatabaseHelper.cs # Database utilities
βββ Logging/
βββ StructuredLoggingHelper.cs # Serilog structured logging
βββ PerformanceMonitoringHelper.cs # Performance tracking
βββ HealthCheckHelper.cs # Health checks
βββ MetricsCollectionHelper.cs # Metrics collection
βββ FileMedia/
βββ ImageProcessingHelper.cs # Image manipulation
βββ FileCompressionHelper.cs # File compression
βββ DocumentProcessingHelper.cs # Document operations
βββ MediaConversionHelper.cs # Media conversion
βββ Captcha/
βββ ICaptchaProvider.cs # CAPTCHA provider interface
βββ GoogleRecaptchaProvider.cs # Google reCAPTCHA
βββ MathCaptchaProvider.cs # Math CAPTCHA
βββ CaptchaManager.cs # CAPTCHA management
βββ CaptchaModels.cs # CAPTCHA models
βββ Testing/
βββ TestDataGenerator.cs # Fake data generation
βββ MockHelper.cs # Mocking utilities
βββ AssertionHelper.cs # Custom assertions
βββ TestBase.cs # Test base classes
WebLibraryTest/ # Test console application
βββ Program.cs # Test implementation
dotnet add package WebLibrary
using WebLibrary.Models;
using WebLibrary.Helpers;
// Use ServiceResult for operation results
var result = ServiceResult<string>.Success("Operation completed");
// HTTP operations
var httpResult = await HttpClientHelper.GetAsync<MyModel>("https://api.example.com/data");
// Validation
bool isValidEmail = ValidationHelper.IsValidEmail("test@example.com");
using WebLibrary.Security;
// JWT Token operations
var token = JwtTokenHelper.GenerateToken(claims, secretKey);
var isValid = JwtTokenHelper.ValidateToken(token, secretKey);
// Password hashing
var hashedPassword = PasswordHelper.HashPassword("mypassword");
var isValidPassword = PasswordHelper.VerifyPassword("mypassword", hashedPassword);
// Encryption
var encrypted = EncryptionHelper.AesEncrypt("sensitive data", key, iv);
var decrypted = EncryptionHelper.AesDecrypt(encrypted, key, iv);
using WebLibrary.DataProcessing;
// CSV operations
var csvResult = CsvDataHelper.WriteToCsv(data, "output.csv");
var readResult = CsvDataHelper.ReadFromCsv<MyModel>("input.csv");
// Excel operations
var excelResult = ExcelDataHelper.WriteToExcel(data, "output.xlsx");
var excelReadResult = ExcelDataHelper.ReadFromExcel<MyModel>("input.xlsx");
// Data transformation
var jsonResult = DataTransformationHelper.ToJson(myObject);
var dictResult = DataTransformationHelper.ToDictionary(myObject);
using WebLibrary.Database;
// Connection factory
var connectionFactory = new SqlServerConnectionFactory(connectionString);
// Repository pattern
public class UserRepository : DapperGenericRepository<User>
{
public UserRepository(IDbConnectionFactory connectionFactory)
: base(connectionFactory, "Users") { }
}
// Query builder
var query = new QueryBuilder()
.Select("Id", "Name", "Email")
.From("Users")
.Where("Age > @MinAge")
.OrderBy("Name")
using WebLibrary.Logging;
// Structured logging
StructuredLoggingHelper.ConfigureLogger(Serilog.Events.LogEventLevel.Information, "logs/app.log");
StructuredLoggingHelper.LogInformation("User logged in: {UserId}", userId);
// Performance monitoring
PerformanceMonitoringHelper.StartTimer("api-call");
var result = await apiService.CallAsync();
PerformanceMonitoringHelper.StopTimer("api-call");
// Health checks
HealthCheckHelper.RecordHealthCheck("database", HealthStatus.Healthy, "Connection OK");
var systemHealth = HealthCheckHelper.GetSystemHealthStatus();
// Metrics collection
MetricsCollectionHelper.IncrementCounter("api-requests", 1);
MetricsCollectionHelper.SetGauge("active-users", 150);
using WebLibrary.FileMedia;
// Image processing
ImageProcessingHelper.ResizeImage("input.jpg", "output.jpg", 800, 600);
ImageProcessingHelper.ConvertImageFormat("input.jpg", "output.png", ImageFormat.PNG);
// File compression
FileCompressionHelper.CompressDirectory("source-folder", "archive.zip");
FileCompressionHelper.ExtractZip("archive.zip", "extract-folder");
// Media conversion
var base64 = MediaConversionHelper.ConvertFileToBase64("file.txt");
var hex = MediaConversionHelper.ConvertFileToHex("file.txt");
using WebLibrary.Captcha;
// Math CAPTCHA
var mathCaptcha = new MathCaptchaProvider();
var captchaResult = mathCaptcha.GenerateCaptcha(new CaptchaOptions
{
Type = CaptchaType.MathCaptcha,
Difficulty = CaptchaDifficulty.Medium,
Language = "tr"
});
// Google reCAPTCHA
var googleCaptcha = new GoogleRecaptchaProvider(new GoogleRecaptchaSettings
{
SiteKey = "your-site-key",
SecretKey = "your-secret-key"
});
// CAPTCHA Manager
var captchaManager = new CaptchaManager();
var result = captchaManager.GenerateCaptcha(CaptchaType.MathCaptcha, options);
using WebLibrary.Testing;
// Test data generation
var users = TestDataGenerator.GenerateUsers(10);
var products = TestDataGenerator.GenerateProducts(5);
// Mocking
var mockRepo = MockHelper.CreateRepositoryMock<User>(users);
var mockLogger = MockHelper.CreateLoggerMock<MyService>();
// Assertions
AssertionHelper.IsNotNull(users);
AssertionHelper.HasCount(users, 10);
AssertionHelper.Contains(users, users.First());
// Test base classes
public class MyTestClass : TestBase
{
protected override void SetupTestData()
{
// Test setup
}
}
.AddParameter("MinAge", 18)
.Build();
// Unit of Work
using var unitOfWork = new UnitOfWork(connectionFactory);
var userRepo = unitOfWork.GetRepository<User, UserRepository>();
await unitOfWork.CommitAsync();
This project is licensed under the MIT License.
For issues and questions, please open an issue on GitHub.
using WebLibrary.Database;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
// WebLibrary Database Services
builder.Services.AddScoped<IDbConnectionFactory>(provider =>
new SqlServerConnectionFactory(builder.Configuration.GetConnectionString("DefaultConnection")));
builder.Services.AddScoped<IUnitOfWork, UnitOfWork>();
builder.Services.AddEndpointsApiExplorer();
var app = builder.Build();
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=TestDB;Trusted_Connection=true;TrustServerCertificate=true;"
}
}
[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
private readonly IUnitOfWork _unitOfWork;
public UsersController(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
[HttpGet]
public async Task<IActionResult> GetAll()
{
var repository = _unitOfWork.GetRepository<User, int>();
var result = await repository.GetAllAsync();
if (result.IsSuccess)
return Ok(result.Data);
return BadRequest(result.ErrorMessages);
}
[HttpPost]
public async Task<IActionResult> Create([FromBody] User user)
{
var repository = _unitOfWork.GetRepository<User, int>();
var result = await repository.AddAsync(user);
if (result.IsSuccess)
return CreatedAtAction(nameof(GetAll), result.Data);
return BadRequest(result.ErrorMessages);
}
}
CREATE TABLE Users (
Id INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(100) NOT NULL,
Email NVARCHAR(100) NOT NULL UNIQUE,
Description NVARCHAR(500) NULL,
CreatedDate DATETIME2 NOT NULL DEFAULT GETUTCDATE(),
UpdatedDate DATETIME2 NULL,
IsActive BIT NOT NULL DEFAULT 1
)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.