public async Task <ActionResult <MethodologyNoteViewModel> > AddNote(
     Guid methodologyVersionId,
     MethodologyNoteAddRequest request)
 {
     return(await _methodologyNoteService
            .AddNote(methodologyVersionId, request)
            .HandleFailuresOr(result => Created(HttpContext.Request.Path, result)));
 }
        public async Task AddNote_NoDisplayDateDefaultsToToday()
        {
            var methodologyVersion = new MethodologyVersion();

            var request = new MethodologyNoteAddRequest
            {
                Content     = "Adding note",
                DisplayDate = null
            };

            var today = DateTime.Today.ToUniversalTime();

            var contentDbContextId = Guid.NewGuid().ToString();

            await using (var contentDbContext = InMemoryApplicationDbContext(contentDbContextId))
            {
                await contentDbContext.MethodologyVersions.AddAsync(methodologyVersion);

                await contentDbContext.SaveChangesAsync();
            }

            await using (var contentDbContext = InMemoryApplicationDbContext(contentDbContextId))
            {
                var service = SetupMethodologyNoteService(contentDbContext);

                var result = (await service.AddNote(
                                  methodologyVersionId: methodologyVersion.Id,
                                  request: request)).AssertRight();

                Assert.NotEqual(Guid.Empty, result.Id);
                Assert.Equal(request.Content, result.Content);
                Assert.Equal(today, result.DisplayDate);
            }

            await using (var contentDbContext = InMemoryApplicationDbContext(contentDbContextId))
            {
                Assert.Single(contentDbContext.MethodologyVersions);

                var addedNote =
                    await contentDbContext.MethodologyNotes.SingleAsync(n =>
                                                                        n.MethodologyVersionId == methodologyVersion.Id);

                Assert.Equal(request.Content, addedNote.Content);
                Assert.Equal(today, addedNote.DisplayDate);
            }
        }
예제 #3
0
        public Task <Either <ActionResult, MethodologyNoteViewModel> > AddNote(
            Guid methodologyVersionId,
            MethodologyNoteAddRequest request)
        {
            return(_persistenceHelper
                   .CheckEntityExists <MethodologyVersion>(methodologyVersionId)
                   .OnSuccess(_userService.CheckCanUpdateMethodology)
                   .OnSuccess(async methodologyVersion =>
            {
                var addedNote = await _methodologyNoteRepository.AddNote(
                    methodologyVersionId: methodologyVersion.Id,
                    createdByUserId: _userService.GetUserId(),
                    content: request.Content,
                    displayDate: request.DisplayDate ?? DateTime.Today.ToUniversalTime());

                return BuildMethodologyNoteViewModel(addedNote);
            }));
        }