public async Task <T> CreateVersion(T newVersion, T currentVersion = null, string partitionKey = null, bool incrementFromCurrentVersion = false) { ICreateVersions <T> newVersionBuilder = _newVersionBuilderFactory.CreateNewVersionBuild(CosmosRepository); return(await newVersionBuilder.CreateVersion(newVersion, currentVersion, partitionKey, incrementFromCurrentVersion)); }
public async Task <T> CreateVersion(T newVersion, T currentVersion = null, string partitionKey = null, bool incrementFromCurrentVersion = false) { ICreateVersions <T> newVersionBuilder = _newVersionBuilderFactory.CreateNewVersionBuild(CosmosRepository); return(await newVersionBuilder.CreateVersion(newVersion, currentVersion, partitionKey, incrementFromCurrentVersion)); // Guard.ArgumentNotNull(newVersion, nameof(newVersion)); // // newVersion.Date = DateTimeOffset.Now.ToLocalTime(); // // if (currentVersion == null) // { // newVersion.Version = 1; // // newVersion.PublishStatus = PublishStatus.Draft; // } // else // { // newVersion.Version = await GetNextVersionNumber(newVersion, currentVersion.Version, partitionKey, incrementFromCurrentVersion); // // if (newVersion.PublishStatus == PublishStatus.Approved && (currentVersion.PublishStatus == PublishStatus.Draft || currentVersion.PublishStatus == PublishStatus.Updated)) // { // return newVersion; // } // else // { // switch (currentVersion.PublishStatus) // { // case PublishStatus.Draft: // newVersion.PublishStatus = PublishStatus.Draft; // break; // // case PublishStatus.Approved: // if (newVersion.PublishStatus != PublishStatus.Draft) // { // newVersion.PublishStatus = PublishStatus.Updated; // } // // break; // // default: // newVersion.PublishStatus = PublishStatus.Updated; // break; // } // } // } // // return newVersion; }