public async Task <IActionResult> SaveVersion([FromBody] NetworkVersionInputModel networkVersion) { bool canEdit = await _networkService.CanEditNetworkAsync(networkVersion.NetworkId, User.GetId()); if (!canEdit) { return(BadRequest("Version creation is not allowed")); } NetworkVersionMetadata currentVersion = await _networkVersionsService.GetCurrentVersionInfoAsync(networkVersion.NetworkId); if (currentVersion?.Id != networkVersion.BaseVersionId) { return(BadRequest("Version is outdated")); } var versionDto = new NewNetworkVersion( networkVersion.NetworkId, networkVersion.Comment, networkVersion.Network.ToDto(), User.GetId()); Guid newVersionId = await _networkVersionsService.SaveVersionAsync(versionDto); return(Ok(newVersionId)); }
public async Task <Guid> SaveVersionAsync(NewNetworkVersion version) { string json = JsonConvert.SerializeObject(version.Diagram); string sha = await _versionsStorage.SaveAsync(version.NetworkId, version.Comment, json); NetworkChangesetModel newChangeset = NetworkChangesetModel.CreateNew( version.NetworkId, version.Comment, version.AuthorId, sha); await _changesetRepository.CreateChangesetAsync(newChangeset); return(newChangeset.Id); }