Exemplo n.º 1
0
 private async Task Upload(Guid releaseId, FastTrack fastTrack, PublishContext context)
 {
     var blobName = context.Staging
         ? PublicContentFastTrackPath(releaseId.ToString(), fastTrack.Id.ToString(), PublicContentStagingPath())
         : PublicContentFastTrackPath(releaseId.ToString(), fastTrack.Id.ToString());
     await _publicBlobStorageService.UploadAsJson(PublicContent, blobName, fastTrack);
 }
 private Task <Either <ActionResult, FastTrackViewModel> > BuildViewModel(FastTrack fastTrack)
 {
     return(_tableBuilderService.Query(fastTrack.ReleaseId, fastTrack.Query).OnSuccess(result =>
     {
         var viewModel = _mapper.Map <FastTrackViewModel>(fastTrack);
         viewModel.FullTable = result;
         viewModel.Query.PublicationId =
             _subjectService.GetPublicationForSubject(fastTrack.Query.SubjectId).Result.Id;
         return viewModel;
     }));
 }
Exemplo n.º 3
0
        public void GetFuncReturnsNullIfUnknownPattern()
        {
            // Arrange
            Expression <Func <string[], int> > expr = model => model[0].Length; // array indexing is unknown to the fast-tracker

            // Act
            Func <string[], int> func = FastTrack <string[], int> .GetFunc(expr.Parameters[0], expr.Body);

            // Assert
            Assert.IsNull(func, "Unknown pattern should result in null return value.");
        }
Exemplo n.º 4
0
        public void GetFunc_Constant()
        {
            // Arrange
            Expression <Func <string, int> > expr = model => 2;

            // Act
            Func <string, int> func = FastTrack <string, int> .GetFunc(expr.Parameters[0], expr.Body);

            int result = func("anything");

            // Assert
            Assert.AreEqual(2, result);
        }
Exemplo n.º 5
0
        public void GetFunc_StaticMember()
        {
            // Arrange
            Expression <Func <string, int> > expr = model => SomeStaticProperty;

            // Act
            Func <string, int> func = FastTrack <string, int> .GetFunc(expr.Parameters[0], expr.Body);

            int result = func("anything");

            // Assert
            Assert.AreEqual(40, result);
        }
Exemplo n.º 6
0
        public void GetFunc_InstanceMemberOnModel()
        {
            // Arrange
            Expression <Func <string, int> > expr = model => model.Length;
            int expected = "Hello, world".Length;

            // Act
            Func <string, int> func = FastTrack <string, int> .GetFunc(expr.Parameters[0], expr.Body);

            int result = func("Hello, world");

            // Assert
            Assert.AreEqual(expected, result);
        }
Exemplo n.º 7
0
        public void GetFunc_Identity()
        {
            // Arrange
            Expression <Func <string, object> > expr = model => model;

            // Act
            Func <string, object> func = FastTrack <string, object> .GetFunc(expr.Parameters[0], expr.Body);

            object result = func("test phrase");


            // Assert
            Assert.AreEqual("test phrase", result);
        }
        private Task <Either <ActionResult, FastTrackViewModel> > BuildViewModel(FastTrack fastTrack)
        {
            return(_releaseRepository
                   .FindOrNotFoundAsync(fastTrack.ReleaseId)
                   .OnSuccessCombineWith(_ => _tableBuilderService.Query(fastTrack.ReleaseId, fastTrack.Query))
                   .OnSuccess(releaseAndResults =>
            {
                var(release, result) = releaseAndResults;
                var viewModel = _mapper.Map <FastTrackViewModel>(fastTrack);
                viewModel.FullTable = result;
                viewModel.Query.PublicationId = release.PublicationId;
                viewModel.ReleaseSlug = release.Slug;

                var latestRelease = _releaseRepository.GetLatestPublishedRelease(release.PublicationId);
                viewModel.LatestData = latestRelease?.Id == release.Id;
                viewModel.LatestReleaseTitle = latestRelease != null
                        ? TimePeriodLabelFormatter.Format(latestRelease.Year, latestRelease.TimeIdentifier,
                                                          FullLabelBeforeYear) : null;
                return viewModel;
            }));
        }