RepoSetting.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System.Diagnostics;
  2. using Quadarax.Application.QLiberace.Base.Entities;
  3. using Quadarax.Application.QLiberace.Common.Domain;
  4. using Quadarax.Application.QLiberace.Common.Repositories;
  5. using Quadarax.Foundation.Core.Data;
  6. using Quadarax.Foundation.Core.Data.Domain;
  7. using Quadarax.Foundation.Core.Data.Extensions;
  8. using Quadarax.Foundation.Core.Data.Interface;
  9. using Quadarax.Foundation.Core.Data.Interface.Domain;
  10. namespace Quadarax.Application.QLiberace.Base.Repositories
  11. {
  12. public class RepoSetting : QlbrcTenantTrackedRepository<Setting>
  13. {
  14. public RepoSetting(IUnitOfWork<IDataDomain> unitOfWork, QlbrcContext operationContext) : base(unitOfWork, operationContext)
  15. {
  16. }
  17. public Setting? Get(string moduleCode, string valueCode)
  18. {
  19. var setting = QueryModule(moduleCode, Paging.NoPaging()).FirstOrDefault(x => x.Code == valueCode);
  20. return setting;
  21. }
  22. public override IQueryable<Setting> Query(IPaging paging, bool usingUncommited = false)
  23. {
  24. var result = base.Query(paging, usingUncommited).Where(x => x.IsEnabled);
  25. #if DEBUG
  26. Debug.WriteLine($"Repo '{GetType().Name}' Query returns {result.Count()} rows.");
  27. #endif
  28. return result;
  29. }
  30. public IQueryable<Setting> QueryModule(string moduleCode, IPaging paging)
  31. {
  32. var result = Query(paging).Where(x => x.ModuleCode == moduleCode);
  33. #if DEBUG
  34. Debug.WriteLine($"Repo '{GetType().Name}' Query returns {result.Count()} rows.");
  35. #endif
  36. return result;
  37. }
  38. public string? GetValue(string moduleCode, string valueCode)
  39. {
  40. var setting = QueryModule(moduleCode, Paging.NoPaging()).FirstOrDefault(x => x.Code == valueCode);
  41. return setting?.Value;
  42. }
  43. }
  44. }