Browse Source

Implemented CityRepository for memorydb.

pull/272/head
Halil İbrahim Kalkan 8 years ago
parent
commit
cb96d3df4a
  1. 1
      src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/IRepository.cs
  2. 2
      src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs
  3. 9
      test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/AbpMemoryDbTestModule.cs
  4. 30
      test/Volo.Abp.MemoryDb.Tests/Volo/Abp/TestApp/MemoryDb/CityRepository.cs

1
src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/IRepository.cs

@ -1,5 +1,4 @@
using System;
using System.Linq;
using System.Linq.Expressions;
using System.Threading;
using System.Threading.Tasks;

2
src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs

@ -12,6 +12,8 @@ namespace Volo.Abp.Domain.Repositories.MemoryDb
where TMemoryDbContext : MemoryDbContext
where TEntity : class, IEntity
{
//TODO: Add dbcontext just like mongodb implementation!
public virtual List<TEntity> Collection => Database.Collection<TEntity>();
public virtual IMemoryDatabase Database => DatabaseProvider.GetDatabase();

9
test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/AbpMemoryDbTestModule.cs

@ -5,10 +5,14 @@ using Volo.Abp.TestApp.MemoryDb;
using Volo.Abp.Data;
using Volo.Abp.Autofac;
using Volo.Abp.TestApp;
using Volo.Abp.TestApp.Domain;
namespace Volo.Abp.MemoryDb
{
[DependsOn(typeof(TestAppModule), typeof(AbpMemoryDbModule), typeof(AbpAutofacModule))]
[DependsOn(
typeof(TestAppModule),
typeof(AbpMemoryDbModule),
typeof(AbpAutofacModule))]
public class AbpMemoryDbTestModule : AbpModule
{
public override void ConfigureServices(IServiceCollection services)
@ -23,9 +27,10 @@ namespace Volo.Abp.MemoryDb
services.AddMemoryDbContext<TestAppMemoryDbContext>(options =>
{
options.AddDefaultRepositories();
options.AddRepository<City, CityRepository>();
});
services.AddAssemblyOf<AbpMemoryDbModule>();
services.AddAssemblyOf<AbpMemoryDbTestModule>();
}
}
}

30
test/Volo.Abp.MemoryDb.Tests/Volo/Abp/TestApp/MemoryDb/CityRepository.cs

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories.MemoryDb;
using Volo.Abp.MemoryDb;
using Volo.Abp.TestApp.Domain;
namespace Volo.Abp.TestApp.MemoryDb
{
public class CityRepository : MemoryDbRepository<TestAppMemoryDbContext, City, Guid>, ICityRepository
{
public CityRepository(IMemoryDatabaseProvider<TestAppMemoryDbContext> databaseProvider)
: base(databaseProvider)
{
}
public Task<City> FindByNameAsync(string name)
{
return Task.FromResult(Collection.FirstOrDefault(c => c.Name == name));
}
public async Task<List<Person>> GetPeopleInTheCityAsync(string cityName)
{
var city = await FindByNameAsync(cityName);
return Database.Collection<Person>().Where(p => p.CityId == city.Id).ToList();
}
}
}
Loading…
Cancel
Save