public async Task <Domain.Entities.Manufacturer.Manufacturer> GetAsync(Guid manufacturerId, bool @readonly) { if (@readonly) { var cached = _cachingRepository.Get <Domain.Entities.Manufacturer.Manufacturer>(manufacturerId.ToString()); if (cached != null) { return(cached); } } var query = _context.Manufacturers .Include(x => x.Pictures) .ThenInclude(x => x.Picture) .ThenInclude(x => x.MimeType) .AsQueryable(); if (@readonly) { query = query.AsNoTracking(); } var manufacturer = await query.FirstOrDefaultAsync(x => x.Id.Equals(manufacturerId)); if (manufacturer != null && @readonly) { _cachingRepository.Cache(manufacturerId.ToString(), query); } return(manufacturer); }
public async Task <Domain.Entities.Product.Product> AddAsync(Domain.Entities.Product.Product product) { _context.ChangeTracker.AutoDetectChangesEnabled = false; await _context.AddAsync(product); _cachingRepository.Cache(product.Id.ToString(), product); _context.ChangeTracker.AutoDetectChangesEnabled = true; return(product); }
public async Task <bool> AnyAsync(Guid id) { var cached = _cachingRepository.Get <Domain.Entities.Product.Category>($"CategoryAsNoTracking_{id}"); if (cached != null) { return(true); } var category = await _context.Categories .AsNoTracking() .AnyAsync(x => x.Id.Equals(id)); if (category) { _cachingRepository.Cache(id.ToString(), true); } return(category); }