RepoSetting.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Quadarax.Application.QLiberace.Base.Entities;
  2. using Quadarax.Foundation.Core.Data;
  3. using Quadarax.Foundation.Core.Data.Repository;
  4. using Quadarax.Foundation.Core.Data.Domain;
  5. using Quadarax.Foundation.Core.Data.Interface;
  6. using Quadarax.Foundation.Core.Data.Interface.Domain;
  7. namespace Quadarax.Application.QLiberace.Base.Repositories
  8. {
  9. public class RepoSetting : EntityRepository<long, Setting>
  10. {
  11. public RepoSetting(IUnitOfWork<IDataDomain> unitOfWork) : base(unitOfWork)
  12. {
  13. }
  14. public Setting? Get(string moduleCode, string valueCode)
  15. {
  16. var setting = QueryModule(moduleCode, Paging.NoPaging()).FirstOrDefault(x => x.Code == valueCode);
  17. return setting;
  18. }
  19. public override IQueryable<Setting> Query(IPaging paging, bool usingUncommited = false)
  20. {
  21. return base.Query(paging, usingUncommited).Where(x=>x.IsEnabled);
  22. }
  23. public IQueryable<Setting> QueryModule(string moduleCode, IPaging paging)
  24. {
  25. return Query(paging).Where(x => x.ModuleCode == moduleCode);
  26. }
  27. public string? GetValue(string moduleCode, string valueCode)
  28. {
  29. var setting = QueryModule(moduleCode, Paging.NoPaging()).FirstOrDefault(x => x.Code == valueCode);
  30. return setting?.Value;
  31. }
  32. }
  33. }