diff --git a/zero.Core/Api/ApplicationsApi.cs b/zero.Core/Api/ApplicationsApi.cs
index f9e81891..c0dbb7a5 100644
--- a/zero.Core/Api/ApplicationsApi.cs
+++ b/zero.Core/Api/ApplicationsApi.cs
@@ -29,7 +29,7 @@ namespace zero.Core.Api
///
public async Task> GetAll()
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session
.Query()
.OrderByDescending(x => x.CreatedDate)
@@ -42,7 +42,7 @@ namespace zero.Core.Api
{
query.SearchFor(entity => entity.Name);
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session.Query().ToQueriedListAsync(query);
}
diff --git a/zero.Core/Api/AuthenticationApi.cs b/zero.Core/Api/AuthenticationApi.cs
index 1660e824..92448ba1 100644
--- a/zero.Core/Api/AuthenticationApi.cs
+++ b/zero.Core/Api/AuthenticationApi.cs
@@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
+using zero.Core.Database;
using zero.Core.Entities;
using zero.Core.Identity;
@@ -11,16 +12,16 @@ namespace zero.Core.Api
{
public class AuthenticationApi : IAuthenticationApi
{
- protected IDocumentStore Raven { get; private set; }
+ protected IZeroStore Store { get; private set; }
protected IZeroContext Context { get; set; }
protected SignInManager SignInManager { get; private set; }
- public AuthenticationApi(IDocumentStore raven, IZeroContext context, SignInManager signInManager)
+ public AuthenticationApi(IZeroStore store, IZeroContext context, SignInManager signInManager)
{
- Raven = raven;
+ Store = store;
Context = context;
SignInManager = signInManager;
}
diff --git a/zero.Core/Api/AuthorizationApi.cs b/zero.Core/Api/AuthorizationApi.cs
index 60ea35ea..6a3fc615 100644
--- a/zero.Core/Api/AuthorizationApi.cs
+++ b/zero.Core/Api/AuthorizationApi.cs
@@ -7,6 +7,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
+using zero.Core.Database;
using zero.Core.Entities;
using zero.Core.Identity;
@@ -14,7 +15,7 @@ namespace zero.Core.Api
{
public class AuthorizationApi : IAuthorizationApi
{
- protected IDocumentStore Raven { get; private set; }
+ protected IZeroStore Store { get; private set; }
protected IHttpContextAccessor HttpContextAccessor { get; set; }
@@ -23,9 +24,9 @@ namespace zero.Core.Api
protected ClaimsPrincipal Principal => HttpContextAccessor.HttpContext?.User;
- public AuthorizationApi(IDocumentStore raven, IHttpContextAccessor httpContextAccessor, SignInManager signInManager)
+ public AuthorizationApi(IZeroStore store, IHttpContextAccessor httpContextAccessor, SignInManager signInManager)
{
- Raven = raven;
+ Store = store;
HttpContextAccessor = httpContextAccessor;
SignInManager = signInManager;
}
diff --git a/zero.Core/Api/BackofficeApi.cs b/zero.Core/Api/BackofficeApi.cs
index 34a63201..60645b02 100644
--- a/zero.Core/Api/BackofficeApi.cs
+++ b/zero.Core/Api/BackofficeApi.cs
@@ -1,12 +1,12 @@
using FluentValidation;
using FluentValidation.Results;
using Raven.Client;
-using Raven.Client.Documents;
using Raven.Client.Documents.Session;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using zero.Core.Attributes;
+using zero.Core.Database;
using zero.Core.Entities;
using zero.Core.Entities.Messages;
using zero.Core.Extensions;
@@ -16,7 +16,7 @@ namespace zero.Core.Api
{
public abstract class BackofficeApi : IBackofficeApi
{
- protected IDocumentStore Raven { get; private set; }
+ protected IZeroStore Store { get; private set; }
const string NEW_ID = "new:";
@@ -25,7 +25,7 @@ namespace zero.Core.Api
public BackofficeApi(IBackofficeStore store)
{
- Raven = store.Raven;
+ Store = store.Store;
Backoffice = store;
}
@@ -38,7 +38,7 @@ namespace zero.Core.Api
return default;
}
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session.LoadAsync(id);
}
@@ -46,7 +46,7 @@ namespace zero.Core.Api
///
public async Task> GetByIds(params string[] ids) where T : IZeroIdEntity
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
Dictionary models = await session.LoadAsync(ids);
Dictionary result = new Dictionary();
@@ -145,7 +145,7 @@ namespace zero.Core.Api
model.CreatedById ??= userId;
model.Hash ??= IdGenerator.Create();
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
session.Advanced.WaitForIndexesAfterSaveChanges(throwOnTimeout: false);
await session.StoreAsync(model);
@@ -171,7 +171,7 @@ namespace zero.Core.Api
///
public async Task> DeleteById(string id) where T : IZeroIdEntity
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
session.Advanced.WaitForIndexesAfterSaveChanges(throwOnTimeout: false);
T entity = await session.LoadAsync(id);
@@ -207,7 +207,7 @@ namespace zero.Core.Api
///
public async Task> Purge(string querySuffix = null, Parameters parameters = null)
{
- await Raven.PurgeAsync(querySuffix, parameters);
+ await Store.RavenStore.PurgeAsync(querySuffix, parameters);
return EntityResult.Success();
}
}
diff --git a/zero.Core/Api/BackofficeStore.cs b/zero.Core/Api/BackofficeStore.cs
index 57b0bfdf..5b2aef79 100644
--- a/zero.Core/Api/BackofficeStore.cs
+++ b/zero.Core/Api/BackofficeStore.cs
@@ -1,4 +1,5 @@
using Raven.Client.Documents;
+using zero.Core.Database;
using zero.Core.Messages;
using zero.Core.Options;
@@ -6,7 +7,7 @@ namespace zero.Core.Api
{
public class BackofficeStore : IBackofficeStore
{
- public IDocumentStore Raven { get; private set; }
+ public IZeroStore Store { get; private set; }
public IApplicationContext AppContext { get; private set; }
@@ -17,9 +18,9 @@ namespace zero.Core.Api
public IMessageAggregator Messages { get; private set; }
- public BackofficeStore(IDocumentStore raven, IApplicationContext appContext, IZeroOptions options, IAuthenticationApi authenticationApi, IMessageAggregator messages)
+ public BackofficeStore(IZeroStore store, IApplicationContext appContext, IZeroOptions options, IAuthenticationApi authenticationApi, IMessageAggregator messages)
{
- Raven = raven;
+ Store = store;
AppContext = appContext;
Options = options;
Auth = authenticationApi;
@@ -30,7 +31,7 @@ namespace zero.Core.Api
public interface IBackofficeStore
{
- IDocumentStore Raven { get; }
+ IZeroStore Store { get; }
IApplicationContext AppContext { get; }
diff --git a/zero.Core/Api/CountriesApi.cs b/zero.Core/Api/CountriesApi.cs
index dcf323eb..79f32a16 100644
--- a/zero.Core/Api/CountriesApi.cs
+++ b/zero.Core/Api/CountriesApi.cs
@@ -37,7 +37,7 @@ namespace zero.Core.Api
///
public async Task> GetAll(string languageId)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session.Query()
.OrderByDescending(x => x.IsPreferred)
.ThenBy(x => x.Name)
@@ -50,7 +50,7 @@ namespace zero.Core.Api
{
query.SearchSelector = country => country.Name;
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session.Query()
.OrderByDescending(x => x.IsPreferred)
.ThenBy(x => x.Name)
diff --git a/zero.Core/Api/LanguagesApi.cs b/zero.Core/Api/LanguagesApi.cs
index 9d202c29..3eb321e8 100644
--- a/zero.Core/Api/LanguagesApi.cs
+++ b/zero.Core/Api/LanguagesApi.cs
@@ -40,7 +40,7 @@ namespace zero.Core.Api
///
public async Task> GetAll()
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session.Query()
.OrderByDescending(x => x.CreatedDate)
@@ -70,7 +70,7 @@ namespace zero.Core.Api
{
query.SearchFor(entity => entity.Name);
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session.Query().ToQueriedListAsync(query);
}
diff --git a/zero.Core/Api/MailTemplatesApi.cs b/zero.Core/Api/MailTemplatesApi.cs
index e91d1583..da7c70db 100644
--- a/zero.Core/Api/MailTemplatesApi.cs
+++ b/zero.Core/Api/MailTemplatesApi.cs
@@ -30,7 +30,7 @@ namespace zero.Core.Api
///
public async Task GetByKey(string key)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session.Query().FirstOrDefaultAsync(x => x.Key == key);
}
@@ -47,7 +47,7 @@ namespace zero.Core.Api
///
public async Task> GetAll()
{
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query().ToListAsync();
}
@@ -59,7 +59,7 @@ namespace zero.Core.Api
{
query.SearchSelector = entity => entity.Name;
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query()
.ToQueriedListAsync(query);
diff --git a/zero.Core/Api/MediaApi.cs b/zero.Core/Api/MediaApi.cs
index 21a36c0d..52c3d5ff 100644
--- a/zero.Core/Api/MediaApi.cs
+++ b/zero.Core/Api/MediaApi.cs
@@ -48,7 +48,7 @@ namespace zero.Core.Api
///
public async Task GetSourceById(string id, bool thumb = false, bool enforceAppId = true)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
IMedia media = await session.LoadAsync(id);
@@ -69,7 +69,7 @@ namespace zero.Core.Api
///
public async Task> GetById(IEnumerable ids)
{
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.LoadAsync(ids);
}
@@ -81,7 +81,7 @@ namespace zero.Core.Api
{
query.SearchFor(entity => entity.Name);
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query()
.WhereIf(x => x.FolderId == query.FolderId, !query.FolderId.IsNullOrEmpty(), x => x.FolderId == null)
@@ -99,7 +99,7 @@ namespace zero.Core.Api
.OrderByDescending(x => x.IsFolder)
.ThenBy(query.OrderBy, query.OrderIsDescending, query.OrderType == ListQueryOrderType.String ? OrderingType.String : OrderingType.Double);
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
session.Advanced.MaxNumberOfRequestsPerSession = query.PageSize + 1;
IRavenQueryable dbQuery = session.Query().ProjectInto();
diff --git a/zero.Core/Api/MediaFolderApi.cs b/zero.Core/Api/MediaFolderApi.cs
index ef53e5db..d7d70b17 100644
--- a/zero.Core/Api/MediaFolderApi.cs
+++ b/zero.Core/Api/MediaFolderApi.cs
@@ -33,7 +33,7 @@ namespace zero.Core.Api
///
public async Task> GetAll(string parentId = null)
{
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query()
.WhereIf(x => x.ParentId == parentId, !parentId.IsNullOrEmpty(), x => x.ParentId == null)
@@ -49,7 +49,7 @@ namespace zero.Core.Api
List items = new List();
string[] openIds = new string[0] { };
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
IList folders = await session.Query()
.WhereIf(x => x.ParentId == parentId, !parentId.IsNullOrEmpty(), x => x.ParentId == null)
@@ -126,7 +126,7 @@ namespace zero.Core.Api
///
public async Task> GetHierarchy(string id)
{
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
MediaFolder_ByHierarchy.Result result = await session.Query()
.ProjectInto()
diff --git a/zero.Core/Api/PageTreeApi.cs b/zero.Core/Api/PageTreeApi.cs
index 7d719a28..87cfaea0 100644
--- a/zero.Core/Api/PageTreeApi.cs
+++ b/zero.Core/Api/PageTreeApi.cs
@@ -24,7 +24,7 @@ namespace zero.Core.Api
IReadOnlyCollection pageTypes = Backoffice.Options.Pages.GetAllItems();
string[] openIds = new string[0] { };
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
IList pages = await session
.Query()
diff --git a/zero.Core/Api/PagesApi.cs b/zero.Core/Api/PagesApi.cs
index fcda3cc4..3e2c93ad 100644
--- a/zero.Core/Api/PagesApi.cs
+++ b/zero.Core/Api/PagesApi.cs
@@ -141,7 +141,7 @@ namespace zero.Core.Api
return EntityResult>.Fail("@errors.page.sortingmultipleparents");
}
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
session.Advanced.WaitForIndexesAfterSaveChanges(throwOnTimeout: false);
@@ -211,7 +211,7 @@ namespace zero.Core.Api
return EntityResult.Fail("@errors.page.parentnotallowed");
}
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
session.Advanced.WaitForIndexesAfterSaveChanges(throwOnTimeout: false);
@@ -360,7 +360,7 @@ namespace zero.Core.Api
items.Add(model);
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
// recursive function to store descendants
async Task AddChildren(string parentId)
diff --git a/zero.Core/Api/RecycleBinApi.cs b/zero.Core/Api/RecycleBinApi.cs
index df10c12d..73fb42e5 100644
--- a/zero.Core/Api/RecycleBinApi.cs
+++ b/zero.Core/Api/RecycleBinApi.cs
@@ -67,7 +67,7 @@ namespace zero.Core.Api
{
query.SearchSelector = x => x.Name;
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query()
.WhereIf(x => x.Group == query.Group, !query.Group.IsNullOrWhiteSpace())
@@ -80,7 +80,7 @@ namespace zero.Core.Api
///
public async Task> GetByOperation(string operationId)
{
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query()
.Where(x => x.OperationId == operationId)
@@ -94,7 +94,7 @@ namespace zero.Core.Api
///
public async Task GetCountByOperation(string operationId)
{
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query()
.Where(x => x.OperationId == operationId)
diff --git a/zero.Core/Api/RevisionsApi.cs b/zero.Core/Api/RevisionsApi.cs
index 7fc0cb55..1e9dbfba 100644
--- a/zero.Core/Api/RevisionsApi.cs
+++ b/zero.Core/Api/RevisionsApi.cs
@@ -8,6 +8,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
+using zero.Core.Database;
using zero.Core.Entities;
using zero.Core.Extensions;
using zero.Core.Options;
@@ -18,13 +19,13 @@ namespace zero.Core.Api
{
protected IZeroOptions Options { get; set; }
- protected IDocumentStore Raven { get; set; }
+ protected IZeroStore Store { get; set; }
- public RevisionsApi(IZeroOptions options, IDocumentStore raven)
+ public RevisionsApi(IZeroOptions options, IZeroStore store)
{
Options = options;
- Raven = raven;
+ Store = store;
}
@@ -33,7 +34,7 @@ namespace zero.Core.Api
///
public async Task> GetPaged(string id, int pageNumber = 1, int pageSize = 10, bool includeContent = false) where T : IZeroEntity
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
// get paged revisions
List items = await session.Advanced.Revisions.GetForAsync(id, (pageNumber - 1) * pageSize, pageSize);
diff --git a/zero.Core/Api/SpacesApi.cs b/zero.Core/Api/SpacesApi.cs
index d9bc3150..21fa0568 100644
--- a/zero.Core/Api/SpacesApi.cs
+++ b/zero.Core/Api/SpacesApi.cs
@@ -48,7 +48,7 @@ namespace zero.Core.Api
{
Space space = GetByAlias(alias);
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query()
.Where(x => x.SpaceAlias == space.Alias)
@@ -63,7 +63,7 @@ namespace zero.Core.Api
{
Space space = GetBy();
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query()
.Where(x => x.SpaceAlias == space.Alias)
@@ -78,7 +78,7 @@ namespace zero.Core.Api
{
query.SearchSelector = item => item.Name;
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query()
.Where(x => x.SpaceAlias == alias)
@@ -93,7 +93,7 @@ namespace zero.Core.Api
Space space = GetBy();
query.SearchSelector = item => item.Name;
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query()
.Where(x => x.SpaceAlias == space.Alias)
diff --git a/zero.Core/Api/Token.cs b/zero.Core/Api/Token.cs
index b06e699b..55f7aea2 100644
--- a/zero.Core/Api/Token.cs
+++ b/zero.Core/Api/Token.cs
@@ -3,6 +3,7 @@ using Raven.Client.Documents.Session;
using System;
using System.Linq;
using System.Threading.Tasks;
+using zero.Core.Database;
using zero.Core.Entities;
using zero.Core.Extensions;
using zero.Core.Options;
@@ -11,16 +12,16 @@ namespace zero.Core.Api
{
public class Token : IToken
{
- protected IDocumentStore Raven { get; private set; }
+ protected IZeroStore Store { get; private set; }
protected IZeroOptions Options { get; private set; }
private const string PREFIX = "changeTokens";
- public Token(IDocumentStore raven, IZeroOptions options)
+ public Token(IZeroStore store, IZeroOptions options)
{
- Raven = raven;
+ Store = store;
Options = options;
}
@@ -45,7 +46,7 @@ namespace zero.Core.Api
return false;
}
- using (IDocumentSession session = Raven.OpenSession())
+ using (IDocumentSession session = Store.OpenSession())
{
return session.Query().Any(x => x.Id == token && x.ReferenceId == entityId);
}
@@ -69,11 +70,11 @@ namespace zero.Core.Api
ChangeToken token = new ChangeToken()
{
- Id = Options.Raven.CollectionPrefix.EnsureEndsWith(Raven.Conventions.IdentityPartsSeparator) + PREFIX.EnsureEndsWith(Raven.Conventions.IdentityPartsSeparator) + Guid.NewGuid(),
+ Id = Options.Raven.CollectionPrefix.EnsureEndsWith(Store.RavenStore.Conventions.IdentityPartsSeparator) + PREFIX.EnsureEndsWith(Store.RavenStore.Conventions.IdentityPartsSeparator) + Guid.NewGuid(),
ReferenceId = entityId
};
- using (IDocumentSession session = Raven.OpenSession())
+ using (IDocumentSession session = Store.OpenSession())
{
session.Store(token);
session.Advanced.GetMetadataFor(token)[Constants.Database.Expires] = DateTime.UtcNow.AddMinutes(Options.TokenExpiration);
diff --git a/zero.Core/Api/TranslationsApi.cs b/zero.Core/Api/TranslationsApi.cs
index 736a6a4d..fa6680ea 100644
--- a/zero.Core/Api/TranslationsApi.cs
+++ b/zero.Core/Api/TranslationsApi.cs
@@ -38,7 +38,7 @@ namespace zero.Core.Api
///
public async Task> GetAll()
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session.Query().OrderByDescending(x => x.CreatedDate).ToListAsync();
}
@@ -48,7 +48,7 @@ namespace zero.Core.Api
{
query.SearchFor(entity => entity.Key, entity => entity.Value);
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session.Query().OrderByDescending(x => x.CreatedDate).ToQueriedListAsync(query);
}
diff --git a/zero.Core/Api/UserApi.cs b/zero.Core/Api/UserApi.cs
index b76a07c3..e1bc0002 100644
--- a/zero.Core/Api/UserApi.cs
+++ b/zero.Core/Api/UserApi.cs
@@ -49,7 +49,7 @@ namespace zero.Core.Api
///
public async Task> GetAll()
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session.Query()
.OrderByDescending(x => x.CreatedDate)
.ToListAsync();
@@ -63,7 +63,7 @@ namespace zero.Core.Api
query.SearchSelector = user => user.Name;
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await session.Query()
.ToQueriedListAsync(query);
}
diff --git a/zero.Core/Api/UserRolesApi.cs b/zero.Core/Api/UserRolesApi.cs
index 8ce7e5eb..1d89083f 100644
--- a/zero.Core/Api/UserRolesApi.cs
+++ b/zero.Core/Api/UserRolesApi.cs
@@ -37,7 +37,7 @@ namespace zero.Core.Api
///
public async Task> GetAll()
{
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
return await session.Query().OrderBy(x => x.Sort).ThenBy(x => x.Name).ToListAsync();
}
@@ -68,7 +68,7 @@ namespace zero.Core.Api
model.Alias = Safenames.Alias(model.Name);
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
await session.StoreAsync(model);
@@ -89,7 +89,7 @@ namespace zero.Core.Api
///
public async Task> Delete(string id)
{
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
BackofficeUserRole country = await session.LoadAsync(id);
diff --git a/zero.Core/Database/ZeroStore.cs b/zero.Core/Database/ZeroStore.cs
index 33a02e52..c0e61bf6 100644
--- a/zero.Core/Database/ZeroStore.cs
+++ b/zero.Core/Database/ZeroStore.cs
@@ -7,7 +7,7 @@ namespace zero.Core.Database
{
public interface IZeroStore
{
- IDocumentStore Store { get; }
+ IDocumentStore RavenStore { get; }
BulkInsertOperation BulkInsert(CancellationToken token = default);
BulkInsertOperation BulkInsert(string database, CancellationToken token = default);
@@ -23,13 +23,19 @@ namespace zero.Core.Database
{
public ZeroStore() : base()
{
-
+ CurrentDatabase = "laola.hofbauer";
}
///
/// Get underlying raven document store
///
- public IDocumentStore Store => this;
+ public IDocumentStore RavenStore => this;
+
+ ///
+ /// Database for the currently resolved application
+ ///
+ public string CurrentDatabase { get; private set; }
+
///
public override IAsyncDocumentSession OpenAsyncSession(string database)
@@ -40,18 +46,20 @@ namespace zero.Core.Database
///
public override IAsyncDocumentSession OpenAsyncSession(SessionOptions options)
{
+ options.Database = options.Database ?? CurrentDatabase;
return base.OpenAsyncSession(options);
}
///
public override IAsyncDocumentSession OpenAsyncSession()
{
- return base.OpenAsyncSession();
+ return base.OpenAsyncSession(CurrentDatabase);
}
///
public override IDocumentSession OpenSession(SessionOptions options)
{
+ options.Database = options.Database ?? CurrentDatabase;
return base.OpenSession(options);
}
@@ -64,7 +72,7 @@ namespace zero.Core.Database
///
public override IDocumentSession OpenSession()
{
- return base.OpenSession();
+ return base.OpenSession(CurrentDatabase);
}
///
@@ -78,7 +86,7 @@ namespace zero.Core.Database
///
public BulkInsertOperation BulkInsert(CancellationToken token = default)
{
- return base.BulkInsert(null, token);
+ return base.BulkInsert(CurrentDatabase, token);
}
}
}
diff --git a/zero.Core/Extensions/RavenDocumentStoreExtensions.cs b/zero.Core/Extensions/RavenDocumentStoreExtensions.cs
index 798a99a3..6078c3d0 100644
--- a/zero.Core/Extensions/RavenDocumentStoreExtensions.cs
+++ b/zero.Core/Extensions/RavenDocumentStoreExtensions.cs
@@ -94,15 +94,6 @@ namespace zero.Core.Extensions
}
- ///
- /// Create a new unique Id
- ///
- public static string Id(this IDocumentStore store, int length = -1)
- {
- return IdGenerator.Create(length);
- }
-
-
///
/// Reserves a key cluster-wide
///
diff --git a/zero.Core/Extensions/ValidatorExtensions.cs b/zero.Core/Extensions/ValidatorExtensions.cs
index a59f11f2..82b8f99b 100644
--- a/zero.Core/Extensions/ValidatorExtensions.cs
+++ b/zero.Core/Extensions/ValidatorExtensions.cs
@@ -105,7 +105,7 @@ namespace zero.Core.Extensions
{
return ruleBuilder.MustAsync(async (entity, value, context, cancellation) =>
{
- using IAsyncDocumentSession session = store.Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = store.Store.OpenAsyncSession();
bool any = await session.Advanced.AsyncDocumentQuery()
.WhereNotEquals(nameof(IZeroIdEntity.Id), entity.Id)
@@ -124,7 +124,7 @@ namespace zero.Core.Extensions
{
return ruleBuilder.MustAsync(async (entity, value, context, cancellation) =>
{
- using IAsyncDocumentSession session = store.Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = store.Store.OpenAsyncSession();
return await session.Advanced.AsyncDocumentQuery()
.WhereNotEquals(nameof(IZeroIdEntity.Id), entity.Id)
@@ -155,7 +155,7 @@ namespace zero.Core.Extensions
return true;
}
- using IAsyncDocumentSession session = store.Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = store.Store.OpenAsyncSession();
TReference model = await session.LoadAsync(id);
return model != null;
}).WithMessage("@errors.forms.reference_notfound");
diff --git a/zero.Core/Identity/RavenRoleStore(TRole).cs b/zero.Core/Identity/RavenRoleStore(TRole).cs
index 51ed07ad..82de190f 100644
--- a/zero.Core/Identity/RavenRoleStore(TRole).cs
+++ b/zero.Core/Identity/RavenRoleStore(TRole).cs
@@ -8,6 +8,7 @@ using System.Linq;
using System.Security.Claims;
using System.Threading;
using System.Threading.Tasks;
+using zero.Core.Database;
using zero.Core.Entities;
namespace zero.Core.Identity
@@ -15,14 +16,14 @@ namespace zero.Core.Identity
public class RavenRoleStore : IRoleStore, IRoleClaimStore
where TRole : class, IIdentityUserRole
{
- protected IDocumentStore Raven { get; private set; }
+ protected IZeroStore Store { get; private set; }
protected IdentityErrorDescriber ErrorDescriber { get; private set; }
- public RavenRoleStore(IDocumentStore raven, IdentityErrorDescriber describer = null)
+ public RavenRoleStore(IZeroStore store, IdentityErrorDescriber describer = null)
{
- Raven = raven;
+ Store = store;
ErrorDescriber = describer ?? new IdentityErrorDescriber();
}
@@ -50,7 +51,7 @@ namespace zero.Core.Identity
Description = $"The affected role is is not part of this role store and can't be created."
});
}
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
await session.StoreAsync(role);
await session.SaveChangesAsync(cancellationToken);
@@ -72,7 +73,7 @@ namespace zero.Core.Identity
}
try
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
await session.StoreAsync(role, cancellationToken);
await session.SaveChangesAsync(cancellationToken);
}
@@ -97,7 +98,7 @@ namespace zero.Core.Identity
}
try
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
session.Delete(role);
await session.SaveChangesAsync(cancellationToken);
}
@@ -139,7 +140,7 @@ namespace zero.Core.Identity
///
public async Task FindByIdAsync(string roleId, CancellationToken cancellationToken)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await ScopeQuery(session.Query()).FirstOrDefaultAsync(x => x.Id == roleId, cancellationToken);
}
@@ -147,7 +148,7 @@ namespace zero.Core.Identity
///
public async Task FindByNameAsync(string normalizedRoleName, CancellationToken cancellationToken)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await ScopeQuery(session.Query()).FirstOrDefaultAsync(x => x.Name == normalizedRoleName, cancellationToken);
}
diff --git a/zero.Core/Identity/RavenScopedStores.cs b/zero.Core/Identity/RavenScopedStores.cs
index d73acaa4..4b9214c2 100644
--- a/zero.Core/Identity/RavenScopedStores.cs
+++ b/zero.Core/Identity/RavenScopedStores.cs
@@ -2,6 +2,7 @@
using Raven.Client.Documents;
using Raven.Client.Documents.Linq;
using System;
+using zero.Core.Database;
using zero.Core.Entities;
using zero.Core.Extensions;
@@ -12,7 +13,7 @@ namespace zero.Core.Identity
{
protected IZeroContext Context { get; private set; }
- public RavenScopedRoleStore(IDocumentStore raven, IZeroContext context, IdentityErrorDescriber describer = null) : base(raven, describer)
+ public RavenScopedRoleStore(IZeroStore store, IZeroContext context, IdentityErrorDescriber describer = null) : base(store, describer)
{
Context = context;
}
@@ -31,7 +32,7 @@ namespace zero.Core.Identity
{
protected IZeroContext Context { get; private set; }
- public RavenScopedUserStore(IDocumentStore raven, IZeroContext context) : base(raven)
+ public RavenScopedUserStore(IZeroStore store, IZeroContext context) : base(store)
{
Context = context;
}
@@ -54,7 +55,7 @@ namespace zero.Core.Identity
{
protected IZeroContext Context { get; private set; }
- public RavenScopedUserStore(IDocumentStore raven, IZeroContext context) : base(raven)
+ public RavenScopedUserStore(IZeroStore store, IZeroContext context) : base(store)
{
Context = context;
}
diff --git a/zero.Core/Identity/RavenUserStore(TUser).cs b/zero.Core/Identity/RavenUserStore(TUser).cs
index 6ac59567..0c074d88 100644
--- a/zero.Core/Identity/RavenUserStore(TUser).cs
+++ b/zero.Core/Identity/RavenUserStore(TUser).cs
@@ -8,6 +8,7 @@ using System.Linq;
using System.Security.Claims;
using System.Threading;
using System.Threading.Tasks;
+using zero.Core.Database;
using zero.Core.Entities;
using zero.Core.Extensions;
@@ -23,11 +24,11 @@ namespace zero.Core.Identity
IProtectedUserStore
where TUser : class, IIdentityUser
{
- protected IDocumentStore Raven { get; private set; }
+ protected IZeroStore Store { get; private set; }
- public RavenUserStore(IDocumentStore raven)
+ public RavenUserStore(IZeroStore store)
{
- Raven = raven;
+ Store = store;
}
@@ -61,10 +62,10 @@ namespace zero.Core.Identity
});
}
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
// try to reserve the key for the new user
- if (!await Raven.ReserveAsync(GetReservationKey(user), user.Id))
+ if (!await Store.RavenStore.ReserveAsync(GetReservationKey(user), user.Id))
{
return IdentityResult.Failed(new IdentityError
{
@@ -86,7 +87,7 @@ namespace zero.Core.Identity
{
// The compare/exchange email reservation is cluster-wide, outside of the session scope.
// We need to manually roll it back.
- await Raven.RemoveReservationAsync(GetReservationKey(user));
+ await Store.RavenStore.RemoveReservationAsync(GetReservationKey(user));
throw;
}
@@ -107,11 +108,11 @@ namespace zero.Core.Identity
}
// Remove the cluster-wide compare/exchange key.
- await Raven.RemoveReservationAsync(GetReservationKey(user));
+ await Store.RavenStore.RemoveReservationAsync(GetReservationKey(user));
// Delete the user and save it. We must save it because deleting is a cluster-wide operation.
// Only if the deletion succeeds will we remove the cluster-wide compare/exchange key.
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
TUser source = await session.LoadAsync(user.Id, cancellationToken);
@@ -134,7 +135,7 @@ namespace zero.Core.Identity
});
}
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
TUser source = await session.LoadAsync(user.Id, cancellationToken);
@@ -150,7 +151,7 @@ namespace zero.Core.Identity
if (source.Email != user.Email)
{
// try to reserve the key for the new user
- if (!await Raven.ReserveAsync(GetReservationKey(user), user.Id))
+ if (!await Store.RavenStore.ReserveAsync(GetReservationKey(user), user.Id))
{
return IdentityResult.Failed(new IdentityError
{
@@ -160,11 +161,11 @@ namespace zero.Core.Identity
}
// Remove the cluster-wide compare/exchange key.
- await Raven.RemoveReservationAsync(GetReservationKey(source));
+ await Store.RavenStore.RemoveReservationAsync(GetReservationKey(source));
}
}
- using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+ using (IAsyncDocumentSession session = Store.OpenAsyncSession())
{
await session.StoreAsync(user, cancellationToken);
await session.SaveChangesAsync(cancellationToken);
@@ -177,7 +178,7 @@ namespace zero.Core.Identity
///
public async Task FindByIdAsync(string userId, CancellationToken cancellationToken)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await ScopeQuery(session.Query()).FirstOrDefaultAsync(x => x.Id == userId, cancellationToken);
}
@@ -185,7 +186,7 @@ namespace zero.Core.Identity
///
public async Task FindByNameAsync(string normalizedUserName, CancellationToken cancellationToken)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await ScopeQuery(session.Query()).FirstOrDefaultAsync(x => x.Username == normalizedUserName, cancellationToken);
}
@@ -253,7 +254,7 @@ namespace zero.Core.Identity
///
public async Task FindByEmailAsync(string normalizedEmail, CancellationToken cancellationToken)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await ScopeQuery(session.Query()).FirstOrDefaultAsync(x => x.Email == normalizedEmail, cancellationToken);
}
@@ -384,7 +385,7 @@ namespace zero.Core.Identity
return;
}
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
user.Claims.AddRange(claims.Select(claim => new UserClaim(claim)));
await session.StoreAsync(user, cancellationToken);
@@ -402,7 +403,7 @@ namespace zero.Core.Identity
///
public async Task> GetUsersForClaimAsync(Claim claim, CancellationToken cancellationToken)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
UserClaim userClaim = new UserClaim(claim);
return await ScopeQuery(session.Query()).Where(x => x.Claims.Any(c => c.Type == userClaim.Type && c.Value == userClaim.Value)).ToListAsync();
}
@@ -417,7 +418,7 @@ namespace zero.Core.Identity
return;
}
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
IEnumerable userClaims = claims.Select(c => new UserClaim(c)).ToList();
@@ -438,7 +439,7 @@ namespace zero.Core.Identity
return;
}
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
UserClaim userClaim = new UserClaim(claim);
UserClaim newUserClaim = new UserClaim(newClaim);
diff --git a/zero.Core/Identity/RavenUserStore(TUser,TRole).cs b/zero.Core/Identity/RavenUserStore(TUser,TRole).cs
index 3c768acd..e433566e 100644
--- a/zero.Core/Identity/RavenUserStore(TUser,TRole).cs
+++ b/zero.Core/Identity/RavenUserStore(TUser,TRole).cs
@@ -7,6 +7,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using zero.Core.Database;
namespace zero.Core.Identity
{
@@ -18,7 +19,7 @@ namespace zero.Core.Identity
where TUser : class, IIdentityUserWithRoles
where TRole : class, IIdentityUserRole
{
- public RavenUserStore(IDocumentStore raven) : base(raven) { }
+ public RavenUserStore(IZeroStore store) : base(store) { }
///
@@ -39,7 +40,7 @@ namespace zero.Core.Identity
///
public async Task> GetUsersInRoleAsync(string roleName, CancellationToken cancellationToken)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await ScopeQuery(session.Query()).Where(x => roleName.In(x.RoleIds)).ToListAsync(); // TODO scope
}
diff --git a/zero.Core/Routing/Page/PageUrlBuilder.cs b/zero.Core/Routing/Page/PageUrlBuilder.cs
index dcfd8b37..cdd52aff 100644
--- a/zero.Core/Routing/Page/PageUrlBuilder.cs
+++ b/zero.Core/Routing/Page/PageUrlBuilder.cs
@@ -6,6 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using zero.Core.Api;
+using zero.Core.Database;
using zero.Core.Database.Indexes;
using zero.Core.Entities;
using zero.Core.Extensions;
@@ -18,19 +19,19 @@ namespace zero.Core.Routing
const bool TRAILING_SLASH = false;
- protected IDocumentStore Raven { get; private set; }
+ protected IZeroStore Store { get; private set; }
- public PageUrlBuilder(IDocumentStore raven)
+ public PageUrlBuilder(IZeroStore store)
{
- Raven = raven;
+ Store = store;
}
///
public async Task GetUrl(IPage page)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
Pages_ByHierarchy.Result result = await session.Query()
.ProjectInto()
diff --git a/zero.Core/Routing/Routes.cs b/zero.Core/Routing/Routes.cs
index daf1dd25..1ad128dc 100644
--- a/zero.Core/Routing/Routes.cs
+++ b/zero.Core/Routing/Routes.cs
@@ -9,6 +9,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using zero.Core.Api;
+using zero.Core.Database;
using zero.Core.Entities;
using zero.Core.Extensions;
@@ -16,15 +17,15 @@ namespace zero.Core.Routing
{
public class Routes : IRoutes
{
- protected IDocumentStore Raven { get; set; }
+ protected IZeroStore Store { get; set; }
protected ILogger Logger { get; set; }
protected IEnumerable Providers { get; set; }
protected IApplicationContext Context { get; set; }
- public Routes(IDocumentStore raven, ILogger logger, IEnumerable providers, IApplicationContext context)
+ public Routes(IZeroStore store, ILogger logger, IEnumerable providers, IApplicationContext context)
{
- Raven = raven;
+ Store = store;
Logger = logger;
Providers = providers;
Context = context;
@@ -50,7 +51,7 @@ namespace zero.Core.Routing
return null;
}
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await routeProvider.GetRoute(session, model);
}
@@ -73,7 +74,7 @@ namespace zero.Core.Routing
Dictionary result = new Dictionary();
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
foreach (T model in models)
{
@@ -89,7 +90,7 @@ namespace zero.Core.Routing
{
path = path.Length > 1 ? path.TrimEnd('/') : path;
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
string[] pathParts = path.Trim('/').Split('/');
string[] parts = new string[pathParts.Length];
@@ -142,7 +143,7 @@ namespace zero.Core.Routing
///
public async Task ResolveRoute(IRoute route)
{
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
return await ResolveRouteInternal(session, route);
}
@@ -152,7 +153,7 @@ namespace zero.Core.Routing
{
int count = 0;
List all = new List();
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
session.Advanced.MaxNumberOfRequestsPerSession = 1000;
foreach (IRouteProvider provider in Providers)
@@ -161,13 +162,13 @@ namespace zero.Core.Routing
IList routes = await provider.GetAllRoutes(session);
// delete all registered routes in the database for this provider
- await Raven.PurgeAsync($"where {nameof(IRoute.ProviderAlias)} = $alias", new Raven.Client.Parameters()
+ await Store.RavenStore.PurgeAsync($"where {nameof(IRoute.ProviderAlias)} = $alias", new Raven.Client.Parameters()
{
{ "alias", provider.Alias }
});
// store new routes
- using (BulkInsertOperation bulkInsert = Raven.BulkInsert())
+ using (BulkInsertOperation bulkInsert = Store.BulkInsert())
{
foreach (IRoute route in routes)
{
diff --git a/zero.Debug/Controllers/MigrationController.Blueprints.cs b/zero.Debug/Controllers/MigrationController.Blueprints.cs
index 854ac8b0..9cf1a95a 100644
--- a/zero.Debug/Controllers/MigrationController.Blueprints.cs
+++ b/zero.Debug/Controllers/MigrationController.Blueprints.cs
@@ -24,7 +24,7 @@
// {
// IList apps;
-// using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+// using (IAsyncDocumentSession session = Store.OpenAsyncSession())
// {
// apps = await session.Query().ToListAsync();
// }
@@ -69,7 +69,7 @@
// HashSet ids = new HashSet();
// IList items;
-// using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+// using (IAsyncDocumentSession session = Store.OpenAsyncSession())
// {
// session.Advanced.MaxNumberOfRequestsPerSession = 10000;
@@ -98,7 +98,7 @@
// await session.SaveChangesAsync();
// }
-// using (IAsyncDocumentSession session = Raven.OpenAsyncSession())
+// using (IAsyncDocumentSession session = Store.OpenAsyncSession())
// {
// session.Advanced.MaxNumberOfRequestsPerSession = 10000;
diff --git a/zero.Debug/Controllers/MigrationController.cs b/zero.Debug/Controllers/MigrationController.cs
index 0cab9c28..f3369a4b 100644
--- a/zero.Debug/Controllers/MigrationController.cs
+++ b/zero.Debug/Controllers/MigrationController.cs
@@ -1,27 +1,15 @@
using Microsoft.AspNetCore.Mvc;
-using Raven.Client.Documents;
-using Raven.Client.Documents.Session;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using zero.Commerce.Entities;
-using zero.Core;
-using zero.Core.Api;
-using zero.Core.Attributes;
-using zero.Core.Entities;
-using zero.Core.Extensions;
-using zero.Core.Utils;
+using zero.Core.Database;
namespace zero.Debug.Controllers
{
public partial class MigrationController : Controller
{
- private IDocumentStore Raven { get; set; }
+ private IZeroStore Store { get; set; }
- public MigrationController(IDocumentStore raven)
+ public MigrationController(IZeroStore store)
{
- Raven = raven;
+ Store = store;
}
}
}
\ No newline at end of file
diff --git a/zero.Web/Controllers/PagesController.cs b/zero.Web/Controllers/PagesController.cs
index bede767d..4bf1b1f1 100644
--- a/zero.Web/Controllers/PagesController.cs
+++ b/zero.Web/Controllers/PagesController.cs
@@ -1,13 +1,12 @@
using Microsoft.AspNetCore.Mvc;
using Raven.Client.Documents;
using Raven.Client.Documents.Session;
-using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using zero.Core.Api;
+using zero.Core.Database;
using zero.Core.Entities;
-using zero.Core.Extensions;
using zero.Core.Routing;
using zero.Web.Models;
@@ -16,14 +15,14 @@ namespace zero.Web.Controllers
public class PagesController : BackofficeController
{
IPagesApi Api;
- IDocumentStore Raven;
+ IZeroStore Store;
IRevisionsApi RevisionsApi;
- public PagesController(IPagesApi api, IRevisionsApi revisionsApi, IDocumentStore raven)
+ public PagesController(IPagesApi api, IRevisionsApi revisionsApi, IZeroStore store)
{
Api = api;
RevisionsApi = revisionsApi;
- Raven = raven;
+ Store = store;
}
@@ -60,7 +59,7 @@ namespace zero.Web.Controllers
{
IReadOnlyCollection pageTypes = Options.Pages.GetAllItems();
- using IAsyncDocumentSession session = Raven.OpenAsyncSession();
+ using IAsyncDocumentSession session = Store.OpenAsyncSession();
Dictionary pages = await session.LoadAsync(ids);
Dictionary routes = await session.LoadAsync(pages.Where(x => x.Value != null).Select(x => "routes." + x.Value.Hash));
diff --git a/zero.Web/ZeroBuilder.cs b/zero.Web/ZeroBuilder.cs
index 9240fe27..9f161463 100644
--- a/zero.Web/ZeroBuilder.cs
+++ b/zero.Web/ZeroBuilder.cs
@@ -17,6 +17,7 @@ using System.Threading.Tasks;
using zero.Core;
using zero.Core.Api;
using zero.Core.Assemblies;
+using zero.Core.Database;
using zero.Core.Entities;
using zero.Core.Extensions;
using zero.Core.Handlers;
@@ -139,14 +140,13 @@ namespace zero.Web
void ConfigureDatabase()
{
// add raven
- Services.AddSingleton(context =>
+ Services.AddSingleton(context =>
{
IZeroOptions options = context.GetService();
-
- DocumentStore store = new DocumentStore()
+
+ IDocumentStore store = new ZeroStore()
{
- Urls = new string[1] { options.Raven.Url },
- //Database = options.Raven.Database // we do not specify a default database so every session + operation is forced to specify it
+ Urls = new string[1] { options.Raven.Url }
};
IDocumentStore raven = store.Setup(options).Initialize();
@@ -157,10 +157,10 @@ namespace zero.Web
// TODO maybe we shouldn't use all auto-registered assemblies but specify them directly via options?
foreach (Assembly assembly in assemblies)
{
- IndexCreation.CreateIndexes(assembly, store);
+ IndexCreation.CreateIndexes(assembly, store, database: "laola.hofbauer");
}
- return raven;
+ return (ZeroStore)raven;
});
}
diff --git a/zero.sln b/zero.sln
index be0b8e19..919c7921 100644
--- a/zero.sln
+++ b/zero.sln
@@ -7,8 +7,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "zero.Core", "zero.Core\zero
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "zero.Commerce", "zero.Commerce\zero.Commerce.csproj", "{63A8AD15-15F0-4555-BD62-C38B4465FFC1}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "zero.Debug", "zero.Debug\zero.Debug.csproj", "{83473041-7A1B-40ED-9FD0-968B22EB36B3}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "zero.Web", "zero.Web\zero.Web.csproj", "{06156006-7684-41EC-8BD4-3B2A762147CD}"
EndProject
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "zero.Web.UI", "zero.Web.UI\", "{8CE1A69A-35DB-4748-AE1C-86F5BC2E11D4}"
@@ -53,10 +51,6 @@ Global
{63A8AD15-15F0-4555-BD62-C38B4465FFC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{63A8AD15-15F0-4555-BD62-C38B4465FFC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{63A8AD15-15F0-4555-BD62-C38B4465FFC1}.Release|Any CPU.Build.0 = Release|Any CPU
- {83473041-7A1B-40ED-9FD0-968B22EB36B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {83473041-7A1B-40ED-9FD0-968B22EB36B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {83473041-7A1B-40ED-9FD0-968B22EB36B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {83473041-7A1B-40ED-9FD0-968B22EB36B3}.Release|Any CPU.Build.0 = Release|Any CPU
{06156006-7684-41EC-8BD4-3B2A762147CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{06156006-7684-41EC-8BD4-3B2A762147CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{06156006-7684-41EC-8BD4-3B2A762147CD}.Release|Any CPU.ActiveCfg = Release|Any CPU