public async Task InsertRevisionAsync(string fileContent, string previousPublicationId, string username) { // TODO: add relationship between publication versions var currentStatus = await GetStatusAsync(previousPublicationId); if (currentStatus != PublicationStatus.SHOULD_REVISE) { throw new ValidationException("Invalid current publication status"); } var workflow = HelperMethods.ThrowIfNullOtherwiseReturn( await _workFlowService.FindByPublicationIdAsync(previousPublicationId)) as workflow; var revisionId = await InsertRevisionAsync(fileContent, username); await _workFlowService.DeleteByPublicationIdAsync(previousPublicationId); workflow.publicationId = revisionId; await _workFlowService.InsertAsync(workflow); }