コード例 #1
0
        /// <inheritdoc />
        public async Task <bool> UpdateAsync(AnnouncementPutDto announcementDto)
        {
            var book            = _mapper.Map <Announcement>(announcementDto);
            var oldAnnouncement = await _announcementRepository.GetAll().AsNoTracking().FirstOrDefaultAsync(a => a.Id == book.Id);

            if (oldAnnouncement == null)
            {
                return(false);
            }
            await _announcementRepository.Update(book, announcementDto.FieldMasks);

            var affectedRows = await _announcementRepository.SaveChangesAsync();

            return(affectedRows > 0);
        }
コード例 #2
0
        public async Task Update_AnnouncementDoesNotExist_Returns_False()
        {
            var announcementsMock = GetTestAnnouncements().AsQueryable().BuildMock();

            _announcementRepositoryMock.Setup(s => s.GetAll()).Returns(announcementsMock.Object);
            _announcementRepositoryMock.Setup(s => s.Update(It.IsAny <Announcement>(), It.IsAny <List <string> >()));
            _announcementRepositoryMock.Setup(x => x.SaveChangesAsync()).ReturnsAsync(1);
            var announcementDto = new AnnouncementPutDto()
            {
                Id = 3, FieldMasks = new List <string> {
                    "Title"
                }
            };

            var result = await _announcementService.UpdateAsync(announcementDto);

            result.Should().BeFalse();
        }
コード例 #3
0
        public async Task <IActionResult> PutAsync([FromRoute] int id, [FromForm] AnnouncementPutDto announcementDto)
        {
            if (id != announcementDto.Id)
            {
                return(BadRequest());
            }

            if (announcementDto == null)
            {
                return(BadRequest());
            }

            var isAnnouncementUpdated = await _announcementService.UpdateAsync(announcementDto);

            if (!isAnnouncementUpdated)
            {
                return(BadRequest());
            }
            return(NoContent());
        }