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.Interface.Domain; using Quadarax.Foundation.Core.Value.Extensions; namespace Quadarax.Application.QLiberace.Customer.Repositories { public class RepoCustomer : QlbrcTenantCodeTrackedRepository { public RepoCustomer(IUnitOfWork unitOfWork, QlbrcContext operationContext) : base(unitOfWork, operationContext) { } public override Entities.Customer New() { var entity = base.New(); entity.Code = Guid.NewGuid().ToBase32String(); return entity; } public Entities.Customer? GetByCode(string customerCode, bool useUncomitted = false) { if (string.IsNullOrEmpty(customerCode)) throw new ArgumentNullException(nameof(customerCode)); return Query(Paging.NoPaging(), useUncomitted).FirstOrDefault(x => string.Equals(x.Code, customerCode)); } } }