コード例 #1
0
ファイル: ArtifactStorage.cs プロジェクト: lulzzz/Spin
        public async Task Set(ArtifactPayload artifactPayload, CancellationToken token = default)
        {
            artifactPayload.VerifyNotNull(nameof(artifactPayload));

            ArtifactId artifactId = new ArtifactId(artifactPayload.Id);

            _logger.LogTrace($"{nameof(Set)}: Writing {artifactId}");
            await _dataLakeStore.Write(RealPath(artifactId), artifactPayload.ToBytes(), true, token);
        }
コード例 #2
0
ファイル: ArtifactClient.cs プロジェクト: lulzzz/Spin
        public async Task Set(ArtifactPayload articlePayload, CancellationToken token = default)
        {
            articlePayload.VerifyNotNull(nameof(articlePayload));

            _logger.LogTrace($"{nameof(Set)}: Id={articlePayload.Id}");

            HttpResponseMessage message = await _httpClient.PostAsJsonAsync("api/artifact", articlePayload, token);

            message.EnsureSuccessStatusCode();
        }
コード例 #3
0
ファイル: ArtifactPayloadActor.cs プロジェクト: lulzzz/Spin
        public async Task Set(ArtifactPayload artifactPayload, CancellationToken token)
        {
            artifactPayload.VerifyNotNull(nameof(artifactPayload))
            .VerifyAssert(x => artifactPayload.Id.ToLower() == ActorKey.Value, $"Id mismatch - id={artifactPayload.Id.ToLower()}, actorKey={ActorKey}");

            _logger.LogTrace($"{nameof(Set)}: Writing {artifactPayload.Id}");
            await _storage.Set(artifactPayload, token);

            _cache.Set(artifactPayload);
        }
コード例 #4
0
        public async Task Set(ArtifactPayload record, CancellationToken token = default)
        {
            record.VerifyNotNull(nameof(record));

            var actorKey = new ActorKey(new ArtifactId(record.Id).ToString());

            _logger.LogTrace($"{nameof(Set)}: actorKey={actorKey}, id={record.Id}");

            IArtifactPayloadActor actor = _actorHost !.GetActor <IArtifactPayloadActor>(actorKey);
            await actor.Set(record, token);
        }
コード例 #5
0
        public static void Verify(this ArtifactPayload subject)
        {
            subject.VerifyNotNull(nameof(subject));

            subject.Id.VerifyNotEmpty(nameof(subject.Id));
            subject.PackagePayload.VerifyAssert(x => x?.Length > 0, $"{nameof(subject.PackagePayload)} is required");
            subject.Hash.VerifyNotEmpty($"{nameof(subject.Hash)} is required");

            byte[] packagePayload = Convert.FromBase64String(subject.PackagePayload);
            byte[] hash           = MD5.Create().ComputeHash(packagePayload);

            Convert.ToBase64String(hash).VerifyAssert(x => x == subject.Hash, "Hash verification failed");
        }