Docs: Fix concurrency exception

pull/13175/head
Engincan VESKE 3 years ago
parent 6f8d196f0d
commit 0bd830e563

@ -404,8 +404,7 @@ namespace Volo.Docs.Documents
var sourceDocument = await source.GetDocumentAsync(project, documentName, languageCode, version,
oldDocument?.LastSignificantUpdateTime);
await _documentRepository.DeleteAsync(project.Id, sourceDocument.Name, sourceDocument.LanguageCode,
sourceDocument.Version);
await _documentRepository.DeleteAsync(project.Id, sourceDocument.Name, sourceDocument.LanguageCode, sourceDocument.Version, autoSave: true);
await _documentRepository.InsertAsync(sourceDocument, true);
Logger.LogInformation($"Document retrieved: {documentName}");

@ -23,6 +23,7 @@ namespace Volo.Docs.Documents
string name,
string languageCode,
string version,
bool autoSave = false,
CancellationToken cancellationToken = default);
Task<List<Document>> GetListAsync(

@ -141,11 +141,11 @@ namespace Volo.Docs.Documents
GetCancellationToken(cancellationToken));
}
public async Task DeleteAsync(Guid projectId, string name, string languageCode, string version, CancellationToken cancellationToken = default)
public async Task DeleteAsync(Guid projectId, string name, string languageCode, string version, bool autoSave = false, CancellationToken cancellationToken = default)
{
await DeleteAsync(x =>
x.ProjectId == projectId && x.Name == name && x.LanguageCode == languageCode &&
x.Version == version, cancellationToken: cancellationToken);
x.Version == version, autoSave, cancellationToken: cancellationToken);
}
public async Task<Document> GetAsync(Guid id, CancellationToken cancellationToken = default)

@ -49,12 +49,11 @@ namespace Volo.Docs.Documents
x.Version == version, GetCancellationToken(cancellationToken));
}
public async Task DeleteAsync(Guid projectId, string name, string languageCode, string version,
CancellationToken cancellationToken = default)
public async Task DeleteAsync(Guid projectId, string name, string languageCode, string version, bool autoSave = false, CancellationToken cancellationToken = default)
{
await DeleteAsync(x =>
x.ProjectId == projectId && x.Name == name && x.LanguageCode == languageCode &&
x.Version == version, cancellationToken: cancellationToken);
x.Version == version, autoSave, cancellationToken: cancellationToken);
}
public async Task<List<Document>> GetListAsync(Guid? projectId, string version, string name, CancellationToken cancellationToken = default)

Loading…
Cancel
Save