public Task Delete()

in src/CRA.DataProvider.File/FileShardedVertexProvider.cs [29:91]


        public Task Delete(ShardedVertexInfo entry)
            => FileUtils.DeleteItem(
                _fileName,
                entry,
                MatchVersion);

        public async Task<IEnumerable<ShardedVertexInfo>> GetAll()
            => await FileUtils.GetAll<ShardedVertexInfo>(
                _fileName,
                (e) => true);

        public async Task<IEnumerable<ShardedVertexInfo>> GetEntriesForVertex(string vertexName)
            => await FileUtils.GetAll<ShardedVertexInfo>(
                _fileName,
                (e) => e.VertexName == vertexName);

        public async Task<ShardedVertexInfo> GetEntryForVertex(string vertexName, string epochId)
            => (await FileUtils.Get<ShardedVertexInfo>(
                _fileName,
                (e) => e.VertexName == vertexName && e.EpochId == epochId)).Value;

        public async Task<ShardedVertexInfo> GetLatestEntryForVertex(string vertexName)
            => (await FileUtils.GetAll<ShardedVertexInfo>(
                    _fileName,
                    (e) => e.VertexName == vertexName))
                .OrderByDescending(e => e.EpochId)
                .First();

        public Task Insert(ShardedVertexInfo shardedVertexInfo)
            => FileUtils.InsertOrUpdate(
                _fileName,
                shardedVertexInfo,
                MatchVersion,
                UpdateVerion);

        private ShardedVertexInfo UpdateVerion(ShardedVertexInfo svInfo)
            => new ShardedVertexInfo(
                vertexName: svInfo.VertexName,
                epochId: svInfo.EpochId,
                addedShards: svInfo.AddedShards,
                allShards: svInfo.AllShards,
                allInstances: svInfo.AllInstances,
                removedShards: svInfo.RemovedShards,
                shardLocator: svInfo.ShardLocator,
                versionId: FileUtils.GetUpdateVersionId(svInfo.VersionId));

        private (bool matched, bool versionMatched) MatchVersion(ShardedVertexInfo dbItem, ShardedVertexInfo newItem)
        {
            if (dbItem.VertexName == newItem.VertexName
                && dbItem.EpochId == newItem.EpochId)
            {
                if (newItem.VersionId == null
                    || newItem.VersionId == "*"
                    || newItem.VersionId == dbItem.VersionId)
                {
                    return (true, true);
                }

                return (true, false);
            }

            return (false, false);
        }