コード例 #1
0
        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));
        }
コード例 #2
0
        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;
        }