Browse Source

Merge pull request #320 from MoienTajik/master

Made the AddAsync method fully asynchronous
main
Eric Fleming 6 years ago
committed by GitHub
parent
commit
8ccc87d7e9
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 22
      src/Infrastructure/Data/EfRepository.cs

22
src/Infrastructure/Data/EfRepository.cs

@ -1,6 +1,6 @@
using Microsoft.eShopWeb.ApplicationCore.Interfaces;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.eShopWeb.ApplicationCore.Entities;
using Microsoft.eShopWeb.ApplicationCore.Interfaces;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
@ -20,12 +20,12 @@ namespace Microsoft.eShopWeb.Infrastructure.Data
{
_dbContext = dbContext;
}
public virtual async Task<T> GetByIdAsync(int id)
{
return await _dbContext.Set<T>().FindAsync(id);
}
public async Task<IReadOnlyList<T>> ListAllAsync()
{
return await _dbContext.Set<T>().ToListAsync();
@ -35,7 +35,7 @@ namespace Microsoft.eShopWeb.Infrastructure.Data
{
return await ApplySpecification(spec).ToListAsync();
}
public async Task<int> CountAsync(ISpecification<T> spec)
{
return await ApplySpecification(spec).CountAsync();
@ -43,27 +43,27 @@ namespace Microsoft.eShopWeb.Infrastructure.Data
public async Task<T> AddAsync(T entity)
{
_dbContext.Set<T>().Add(entity);
await _dbContext.Set<T>().AddAsync(entity);
await _dbContext.SaveChangesAsync();
return entity;
}
public async Task UpdateAsync(T entity)
{
_dbContext.Entry(entity).State = EntityState.Modified;
await _dbContext.SaveChangesAsync();
}
public async Task DeleteAsync(T entity)
{
_dbContext.Set<T>().Remove(entity);
await _dbContext.SaveChangesAsync();
}
private IQueryable<T> ApplySpecification(ISpecification<T> spec)
{
return SpecificationEvaluator<T>.GetQuery(_dbContext.Set<T>().AsQueryable(), spec);
}
}
}
}
}
Loading…
Cancel
Save