55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using Core.Blueprint.DAL.Infrastructure.Context;
 | |
| using Core.Blueprint.DAL.Infrastructure.Contracts;
 | |
| using Core.Blueprint.Domain.Entities;
 | |
| 
 | |
| namespace Core.Blueprint.DAL.Infrastructure.Repository
 | |
| {
 | |
|     public abstract class RepositorySqlBase<T> : IRepositoryIdentityBase<T> where T: AbsEntity
 | |
|     {
 | |
|         protected SqlServerContext _dbContext;
 | |
| 
 | |
|         protected RepositorySqlBase(SqlServerContext dbContext)
 | |
|         {
 | |
|             _dbContext = dbContext;
 | |
|         }
 | |
| 
 | |
|         public async ValueTask<T> CreateAsync(T blueprint)
 | |
|         {
 | |
|             blueprint.Id = Guid.NewGuid().ToString();
 | |
|             _dbContext.Add(blueprint);
 | |
|             await _dbContext.SaveChangesAsync();
 | |
|             return blueprint;
 | |
|         }
 | |
| 
 | |
|         public async Task<bool> DeleteAsync(string id)
 | |
|         {
 | |
|             var item = await GetByIdAsync(id);
 | |
|             if (item == null)
 | |
|             {
 | |
|                 return false;
 | |
|             }
 | |
|             _dbContext.Remove(item);
 | |
|             await _dbContext.SaveChangesAsync();
 | |
|             return true;
 | |
|         }
 | |
| 
 | |
|         public async ValueTask<IQueryable<T>> GetAllAsync()
 | |
|         {
 | |
|             return _dbContext.Set<T>();
 | |
|         }
 | |
| 
 | |
|         public async ValueTask<T> GetByIdAsync(string id)
 | |
|         {
 | |
|             var result = await _dbContext.FindAsync<T>(id);
 | |
|             return result;
 | |
|         }
 | |
| 
 | |
|         public async Task<bool> UpdateAsync(string id, T entity)
 | |
|         {
 | |
|             _dbContext.Update(entity);
 | |
|             await _dbContext.SaveChangesAsync();
 | |
|             return true;
 | |
|         }
 | |
|     }
 | |
| }
 | 
