using System.Diagnostics; using Quadarax.Application.QLiberace.Base.Entities; using Quadarax.Application.QLiberace.Common.Domain; using Quadarax.Application.QLiberace.Common.Repositories; using Quadarax.Foundation.Core.Data; using Quadarax.Foundation.Core.Data.Domain; using Quadarax.Foundation.Core.Data.Extensions; using Quadarax.Foundation.Core.Data.Interface; using Quadarax.Foundation.Core.Data.Interface.Domain; namespace Quadarax.Application.QLiberace.Base.Repositories { public class RepoSetting : QlbrcTenantTrackedRepository { public RepoSetting(IUnitOfWork unitOfWork, QlbrcContext operationContext) : base(unitOfWork, operationContext) { } public Setting? Get(string moduleCode, string valueCode) { var setting = QueryModule(moduleCode, Paging.NoPaging()).FirstOrDefault(x => x.Code == valueCode); return setting; } public override IQueryable Query(IPaging paging, bool usingUncommited = false) { var result = base.Query(paging, usingUncommited).Where(x => x.IsEnabled); #if DEBUG Debug.WriteLine($"Repo '{GetType().Name}' Query returns {result.Count()} rows."); #endif return result; } public IQueryable QueryModule(string moduleCode, IPaging paging) { var result = Query(paging).Where(x => x.ModuleCode == moduleCode); #if DEBUG Debug.WriteLine($"Repo '{GetType().Name}' Query returns {result.Count()} rows."); #endif return result; } public string? GetValue(string moduleCode, string valueCode) { var setting = QueryModule(moduleCode, Paging.NoPaging()).FirstOrDefault(x => x.Code == valueCode); return setting?.Value; } } }