repository migration
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WhiteLagoon.Application.Common.Interfaces;
|
||||
using WhiteLagoon.Domain.Entities;
|
||||
using WhiteLagoon.Infrastructure.Data;
|
||||
|
||||
namespace WhiteLagoon.Infrastructure.Repository
|
||||
{
|
||||
public class AmenityRepository : Repository<Amenity>, IAmenityRepository
|
||||
{
|
||||
private readonly ApplicationDbContext _db;
|
||||
|
||||
public AmenityRepository(ApplicationDbContext db) : base(db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
|
||||
public void Update(Amenity entity)
|
||||
{
|
||||
_db.Amenities.Update(entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WhiteLagoon.Application.Common.Interfaces;
|
||||
using WhiteLagoon.Domain.Entities;
|
||||
using WhiteLagoon.Infrastructure.Data;
|
||||
|
||||
namespace WhiteLagoon.Infrastructure.Repository
|
||||
{
|
||||
public class ApplicationUserRepository : Repository<ApplicationUser>, IApplicationUserRepository
|
||||
{
|
||||
private readonly ApplicationDbContext _db;
|
||||
|
||||
public ApplicationUserRepository(ApplicationDbContext db) : base(db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WhiteLagoon.Application.Common.Interfaces;
|
||||
using WhiteLagoon.Application.Common.Utility;
|
||||
using WhiteLagoon.Domain.Entities;
|
||||
using WhiteLagoon.Infrastructure.Data;
|
||||
|
||||
namespace WhiteLagoon.Infrastructure.Repository
|
||||
{
|
||||
public class BookingRepository : Repository<Booking>, IBookingRepository
|
||||
{
|
||||
private readonly ApplicationDbContext _db;
|
||||
|
||||
public BookingRepository(ApplicationDbContext db) : base(db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
|
||||
public void Update(Booking entity)
|
||||
{
|
||||
_db.Bookings.Update(entity);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WhiteLagoon.Application.Common.Interfaces;
|
||||
using WhiteLagoon.Domain.Entities;
|
||||
using WhiteLagoon.Infrastructure.Data;
|
||||
|
||||
namespace WhiteLagoon.Infrastructure.Repository
|
||||
{
|
||||
public class Repository<T> : IRepository<T> where T : class
|
||||
{
|
||||
private readonly ApplicationDbContext _db;
|
||||
internal DbSet<T> dbSet;
|
||||
public Repository(ApplicationDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
dbSet = _db.Set<T>();
|
||||
}
|
||||
public void Add(T entity)
|
||||
{
|
||||
dbSet.Add(entity);
|
||||
}
|
||||
|
||||
public bool Any(Expression<Func<T, bool>> filter)
|
||||
{
|
||||
return dbSet.Any(filter);
|
||||
}
|
||||
|
||||
public T Get(Expression<Func<T, bool>> filter, string? includeProperties = null, bool tracked = false)
|
||||
{
|
||||
IQueryable<T> query;
|
||||
if (tracked)
|
||||
{
|
||||
query = dbSet;
|
||||
}
|
||||
else
|
||||
{
|
||||
query=dbSet.AsNoTracking();
|
||||
}
|
||||
if (filter != null)
|
||||
{
|
||||
query = query.Where(filter);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(includeProperties))
|
||||
{
|
||||
//Villa,VillaNumber -- case sensitive
|
||||
foreach (var includeProp in includeProperties
|
||||
.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
query = query.Include(includeProp.Trim());
|
||||
}
|
||||
}
|
||||
return query.FirstOrDefault();
|
||||
}
|
||||
|
||||
public IEnumerable<T> GetAll(Expression<Func<T, bool>>? filter = null, string? includeProperties = null, bool tracked = false)
|
||||
{
|
||||
IQueryable<T> query;
|
||||
if (tracked)
|
||||
{
|
||||
query = dbSet;
|
||||
}
|
||||
else
|
||||
{
|
||||
query = dbSet.AsNoTracking();
|
||||
}
|
||||
if (filter != null)
|
||||
{
|
||||
query = query.Where(filter);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(includeProperties))
|
||||
{
|
||||
foreach (var includeProp in includeProperties
|
||||
.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
query = query.Include(includeProp.Trim());
|
||||
}
|
||||
}
|
||||
return query.ToList();
|
||||
}
|
||||
|
||||
public void Remove(T entity)
|
||||
{
|
||||
dbSet.Remove(entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WhiteLagoon.Application.Common.Interfaces;
|
||||
using WhiteLagoon.Infrastructure.Data;
|
||||
|
||||
namespace WhiteLagoon.Infrastructure.Repository
|
||||
{
|
||||
public class UnitOfWork : IUnitOfWork
|
||||
{
|
||||
private readonly ApplicationDbContext _db;
|
||||
public IVillaRepository Villa {get; private set;}
|
||||
public IApplicationUserRepository User { get; private set; }
|
||||
public IAmenityRepository Amenity { get; private set; }
|
||||
public IBookingRepository Booking { get; private set; }
|
||||
public IVillaNumberRepository VillaNumber { get; private set;}
|
||||
public UnitOfWork(ApplicationDbContext db)
|
||||
{
|
||||
_db = db;
|
||||
Villa = new VillaRepository(_db);
|
||||
User = new ApplicationUserRepository(_db);
|
||||
Booking = new BookingRepository(_db);
|
||||
Amenity = new AmenityRepository(_db);
|
||||
VillaNumber = new VillaNumberRepository(_db);
|
||||
}
|
||||
|
||||
public void Save()
|
||||
{
|
||||
_db.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WhiteLagoon.Application.Common.Interfaces;
|
||||
using WhiteLagoon.Domain.Entities;
|
||||
using WhiteLagoon.Infrastructure.Data;
|
||||
|
||||
namespace WhiteLagoon.Infrastructure.Repository
|
||||
{
|
||||
public class VillaNumberRepository : Repository<VillaNumber>, IVillaNumberRepository
|
||||
{
|
||||
private readonly ApplicationDbContext _db;
|
||||
|
||||
public VillaNumberRepository(ApplicationDbContext db) : base(db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
|
||||
public void Update(VillaNumber entity)
|
||||
{
|
||||
_db.VillaNumbers.Update(entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WhiteLagoon.Application.Common.Interfaces;
|
||||
using WhiteLagoon.Domain.Entities;
|
||||
using WhiteLagoon.Infrastructure.Data;
|
||||
|
||||
namespace WhiteLagoon.Infrastructure.Repository
|
||||
{
|
||||
public class VillaRepository : Repository<Villa>, IVillaRepository
|
||||
{
|
||||
private readonly ApplicationDbContext _db;
|
||||
|
||||
public VillaRepository(ApplicationDbContext db) : base(db)
|
||||
{
|
||||
_db = db;
|
||||
}
|
||||
|
||||
public void Update(Villa entity)
|
||||
{
|
||||
_db.Villas.Update(entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user