コード例 #1
0
        public async Task StartSharing_should_save_SharingContext_if_no_duplicate_exists()
        {
            A.CallTo(() => _repository.GetSharingContextForUserByInfoHash(A <string> .Ignored, A <string> .Ignored))
            .Returns(Task.FromResult <SharingContext>(null));
            var request = ShareRequestFactory.CreateCompleteRequestForSingleFile();

            await _operation.StartSharing(request);

            A.CallTo(() => _repository.CreateSharingContext(A <SharingContext> .Ignored))
            .MustHaveHappenedOnceExactly();
        }
コード例 #2
0
        public async Task StartSharing(ShareRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            await _shareRequestValidator.ValidateAndThrowAsync(request, "default,write");

            var context  = SharingContext.Create(request);
            var existing = await _sharingRepository.GetSharingContextForUserByInfoHash(request.User.Id, context.InfoHash);

            if (existing != default)
            {
                throw new DuplicateSharingContextException();
            }

            SanitizeSharingContext(context);

            await _sharingRepository.CreateSharingContext(context);
        }