Jó kis javítás, fejlesztés TESZT-hez

This commit is contained in:
2025-03-31 19:31:22 +02:00
parent a7e913b3ee
commit 61dd5bc9a1
18 changed files with 299 additions and 88 deletions
@@ -265,6 +265,8 @@ namespace WorkFlowCheck.BL.Services
Description = checkListTemplateHeaderDTO.Description,
ShortName = checkListTemplateHeaderDTO.ShortName,
IsDeleted = false,
NumberGenerator1Id = checkListTemplateHeaderDTO.NumberGenerator1Id,
NumberGenerator2Id = checkListTemplateHeaderDTO.NumberGenerator2Id,
};
_dbContext.CheckListTemplateHeaders.Add(checkListTemplateHeader);
@@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WorkFlowCheck.Common.DTO;
namespace WorkFlowCheck.BL.Services.Interfaces
{
@@ -11,5 +12,6 @@ namespace WorkFlowCheck.BL.Services.Interfaces
{
Task<string> GenerateNextNumberAsync(int templateId, IDbContextTransaction transaction, DateTime? baseDate = null);
Task<string> GetSampleAsync(int templateId, DateTime? baseDate = null);
Task<List<NumberGeneratorTemplateDTO>> GetAllNumbergeneratorsAsync();
}
}
@@ -1,11 +1,13 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Storage;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WorkFlowCheck.BL.Services.Interfaces;
using WorkFlowCheck.Common.DTO;
using WorkFlowCheck.DL;
using WorkFlowCheck.DL.Entities;
@@ -13,7 +15,7 @@ namespace WorkFlowCheck.BL.Services
{
public class NumberGeneratorService : INumberGeneratorService
{
private readonly DbContext _dbContext;
private readonly AppDbContext _dbContext;
private static readonly Dictionary<int, SemaphoreSlim> _templateLocks = new();
public NumberGeneratorService(AppDbContext dbContext)
@@ -71,7 +73,6 @@ namespace WorkFlowCheck.BL.Services
semaphore.Release();
}
}
public async Task<string> GetSampleAsync(int templateId, DateTime? baseDate = null)
{
var template = await _dbContext.Set<NumberGeneratorTemplate>()
@@ -87,6 +88,28 @@ namespace WorkFlowCheck.BL.Services
return BuildFormattedNumber(template, formatted, dynamicSuffix);
}
public async Task<List<NumberGeneratorTemplateDTO>> GetAllNumbergeneratorsAsync()
{
var retVal = new List<NumberGeneratorTemplateDTO>();
try
{
var numbergenerators = await _dbContext.NumberGeneratorTemplates.ToListAsync();
foreach (var numbergenerator in numbergenerators)
{
var numbergeneratortemplateDTO = new NumberGeneratorTemplateDTO();
numbergeneratortemplateDTO.Id = numbergenerator.Id;
numbergeneratortemplateDTO.ShortName = numbergenerator.ShortName;
numbergeneratortemplateDTO.Sample = await this.GetSampleAsync(numbergenerator.Id, DateTime.Now);
retVal.Add(numbergeneratortemplateDTO);
}
}
catch (Exception ex)
{
Log.Error(ex.Message);
}
return retVal;
}
private SemaphoreSlim GetOrCreateSemaphore(int templateId)
{
@@ -98,14 +121,12 @@ namespace WorkFlowCheck.BL.Services
return _templateLocks[templateId];
}
}
private static (int year, int? month) GetKeyDateParts(NumberGeneratorTemplate template, DateTime date)
{
int year = date.Year;
int? month = template.GenerateType == GenerateType.YearAndMonth ? date.Month : null;
return (year, month);
}
private static string BuildDynamicSuffix(NumberGeneratorTemplate template, DateTime date)
{
return template.GenerateType switch
@@ -115,7 +136,6 @@ namespace WorkFlowCheck.BL.Services
_ => template.Suffix
};
}
private static string BuildFormattedNumber(NumberGeneratorTemplate template, string formattedNumber, string dynamicSuffix)
{
var sb = new StringBuilder();