Example #1
0
File: Release.cs Project: leherv/VR
 public Release(BusinessEntities.Release release)
 {
     Media            = new Media(release.Media);
     ReleaseNumber    = release.ReleaseNumber;
     SubReleaseNumber = release.SubReleaseNumber;
     Url      = release.Url;
     Notified = release.Notified;
 }
Example #2
0
        private async Task <bool> IsNewNewest(BusinessEntities.Release release, CancellationToken cancellationToken)
        {
            var currentNewestResult = await _releaseDataStore.GetNewestReleaseForMedia(release.Media.MediaName, cancellationToken);

            if (currentNewestResult.IsSuccess)
            {
                _logger.LogInformation("Current newest release for media with name {mediaName} has releaseNumber {releaseNumber} and subReleaseNumber {subReleaseNumber}", currentNewestResult.Value?.Media?.MediaName, currentNewestResult.Value?.ReleaseNumber.ToString(), currentNewestResult.Value?.SubReleaseNumber.ToString());
                // no release yet for this media
                if (currentNewestResult.Value == null)
                {
                    return(true);
                }
                return(release.IsNewerThan(currentNewestResult.Value.ToBusinessEntity()));
            }

            return(false);
        }
Example #3
0
        public async Task <Result> AddRelease(BusinessEntities.Release release, CancellationToken cancellationToken)
        {
            if (await IsNewNewest(release, cancellationToken))
            {
                var releaseDao  = new Release(release);
                var mediaResult = await _mediaDataStore.GetMedia(release.Media.MediaName, cancellationToken);

                if (mediaResult.IsSuccess)
                {
                    releaseDao.Media = mediaResult.Value;
                }
                _logger.LogInformation("Release with releaseNumber {releaseNumber}.{subReleaseNumber} is the newest for {mediaName} so it will be added", release.ReleaseNumber.ToString(), release.SubReleaseNumber.ToString(), release.Media.MediaName);
                return(await _releaseDataStore.AddRelease(releaseDao, cancellationToken));
            }
            _logger.LogInformation("Release with releaseNumber {releaseNumber} is not newer for {mediaName} so it will be discarded", release.ReleaseNumber.ToString(), release.Media.MediaName);
            return(Result.Failure($"Release with releaseNumber {release.ReleaseNumber.ToString()} is not newer for {release.Media.MediaName}"));
        }