Document contributors.

pull/2826/head
maliming 6 years ago
parent f0d9083aa6
commit 15fc720dd3

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
@ -8,6 +9,8 @@ namespace Volo.Docs.Documents
{
public interface IDocumentRepository : IBasicRepository<Document>
{
Task<Document> FindAsync(Guid projectId, string name, string languageCode, string version);
Task<Document> FindAsync(Guid projectId, string name, string languageCode, string version,
bool includeDetails = true,
CancellationToken cancellationToken = default);
}
}

@ -1,4 +1,5 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
@ -14,10 +15,15 @@ namespace Volo.Docs.Documents
{
}
public async Task<Document> FindAsync(Guid projectId, string name, string languageCode, string version)
public async Task<Document> FindAsync(Guid projectId, string name, string languageCode, string version,
bool includeDetails = true,
CancellationToken cancellationToken = default)
{
return await DbSet.FirstOrDefaultAsync(x =>
x.ProjectId == projectId && x.Name == name && x.LanguageCode == languageCode && x.Version == version);
return await DbSet.IncludeDetails(includeDetails)
.FirstOrDefaultAsync(x =>
x.ProjectId == projectId && x.Name == name && x.LanguageCode == languageCode &&
x.Version == version,
cancellationToken);
}
}
}

@ -0,0 +1,14 @@
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Volo.Docs.Documents;
namespace Volo.Docs.EntityFrameworkCore
{
public static class DocsEfCoreQueryableExtensions
{
public static IQueryable<Document> IncludeDetails(this IQueryable<Document> queryable, bool include = true)
{
return !include ? queryable : queryable.Include(x => x.Contributors);
}
}
}

@ -1,4 +1,5 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using MongoDB.Driver.Linq;
using Volo.Abp.Domain.Repositories.MongoDB;
@ -14,12 +15,14 @@ namespace Volo.Docs.Documents
{
}
public async Task<Document> FindAsync(Guid projectId, string name, string languageCode, string version)
public async Task<Document> FindAsync(Guid projectId, string name, string languageCode, string version,
bool includeDetails = true,
CancellationToken cancellationToken = default)
{
return await GetMongoQueryable().FirstOrDefaultAsync(x => x.ProjectId == projectId &&
x.Name == name &&
x.LanguageCode == languageCode &&
x.Version == version);
x.Version == version, cancellationToken);
}
}
}

@ -190,25 +190,26 @@
<a href="@Model.Document.EditLink" target="_blank"> <i class="fa fa-edit"></i> @(L["Edit"]) (@L["LastEditTime"]: @Model.Document.LastUpdatedTime.ToShortDateString())</a>
}
</div>
<div class="float-right mr-3">
@if (Model.Document.Contributors != null && Model.Document.Contributors.Count > 0)
{
@(L["Contributors"].Value + " :")
@foreach (var contributor in Model.Document.Contributors)
{
<a href="@contributor.UserProfileUrl" target="_blank">
<img src="@contributor.AvatarUrl"
class="rounded-circle" height="21" width="21" title="@contributor.Username" />
</a>
}
}
</div>
</div>
<div class="docs-content-field">
<div class="docs-text-field">
<div class="position-relative">
@if (Model.Document.Contributors != null && Model.Document.Contributors.Count > 0)
{
<div class="contributors">
<small class="text-muted">@(L["Contributors"].Value + " :")</small>
@foreach (var contributor in Model.Document.Contributors)
{
<a href="@contributor.UserProfileUrl" target="_blank">
<img src="@contributor.AvatarUrl"
class="contributors-avatar" height="21" width="21" title="@contributor.Username" />
</a>
}
</div>
}
@if (Model.DocumentPreferences != null && Model.DocumentPreferences.Parameters != null && Model.DocumentPreferences.Parameters.Any())
{
<div class="alert alert-primary alert-criteria">

Loading…
Cancel
Save