/// <summary> /// Upgrade version of the provided document /// </summary> /// <param name="nodeId">Document or Concept nodeId</param> /// <returns></returns> public async Task <NodeEntry> UpgradeDocumentVersion(string nodeId) { List <VersionRecord> componentsVersionList = new List <VersionRecord>(); var nodeInfo = await _alfrescoHttpClient.GetNodeInfo(nodeId); var nodeProperties = nodeInfo.Entry.Properties.As <JObject>().ToDictionary(); int.TryParse(nodeProperties.GetNestedValueOrDefault(SpisumNames.Properties.Version)?.ToString(), out int version); // Get all components var components = await _nodesService.GetSecondaryChildren(nodeId, SpisumNames.Associations.Components, false, true); components.ForEach(x => { var properties = x?.Entry?.Properties.As <JObject>().ToDictionary(); var versionLabel = properties.GetNestedValueOrDefault(AlfrescoNames.ContentModel.VersionLabel)?.ToString(); componentsVersionList.Add(new VersionRecord { Id = x?.Entry?.Id, Version = versionLabel }); }); await _alfrescoHttpClient.UpdateNode(nodeId, new NodeBodyUpdate() .AddProperty(SpisumNames.Properties.ComponentVersionJSON, componentsVersionList) //JsonConvert.SerializeObject(componentsVersionList, Formatting.None, _jsonSettings)) .AddProperty(SpisumNames.Properties.Version, ++version)); // Create a new version of node return(await _alfrescoHttpClient.UpdateContent(nodeId, new byte[] { 01 }, ImmutableList <Parameter> .Empty .Add(new Parameter(HeaderNames.ContentType, MediaTypeNames.Application.Octet, ParameterType.HttpHeader)))); }