コード例 #1
0
        /*****************
         * UPDATE
         */
        public IActionResult Edit(int galleryId)
        {
            GalleryEntity          entity    = galleryRepository.FindById(galleryId);
            GalleryEditorViewModel viewModel = new GalleryEditorViewModel(entity.Id, entity.Label);

            return(View("Editor", viewModel));
        }
コード例 #2
0
        public async Task GetGallery_not_mine_and_it_exist()
        {
            // Arrange
            var controller = new GalleryController(GalleryService.Object);

            controller.ControllerContext = APIControllerUtils.CreateApiControllerContext(UserEntities[0].Id.ToString());
            GalleryEntity newGallery = new GalleryEntity()
            {
                Id       = Guid.NewGuid(),
                fk_owner = UserEntities[1].Id,
                Name     = "TestName",
                owner    = UserEntities[1]
            };

            GalleryEntities.Add(newGallery);

            // Act
            ActionResult <GalleryDTO> response = await controller.GetGallery(newGallery.Id);

            // Assert
            Assert.IsInstanceOfType(response.Result, typeof(UnauthorizedResult));
            var result = response.Result as UnauthorizedResult;

            Assert.AreEqual(401, result.StatusCode);
            GalleryEntities.Remove(newGallery);
        }
コード例 #3
0
        public async Task DeleteGallery_mine_and_it_exist()
        {
            // Arrange
            var controller = new GalleryController(GalleryService.Object);

            controller.ControllerContext = APIControllerUtils.CreateApiControllerContext(UserEntities[0].Id.ToString());
            GalleryEntity newGallery = new GalleryEntity()
            {
                Id       = Guid.NewGuid(),
                fk_owner = UserEntities[0].Id,
                Name     = "TestName",
                owner    = UserEntities[0]
            };

            GalleryEntities.Add(newGallery);

            // Act
            ActionResult response = await controller.DeleteGallery(newGallery.Id);

            // Assert
            Assert.IsInstanceOfType(response, typeof(NoContentResult));
            var result = response as NoContentResult;

            Assert.AreEqual(204, result.StatusCode);
            GalleryService.Verify(repo => repo.DeleteGalleryAsync(It.IsAny <Guid>()), Times.Once());
            GalleryEntities.Remove(newGallery);
        }
コード例 #4
0
        public async Task PutGallery_mine_and_it_exist()
        {
            // Arrange
            var controller = new GalleryController(GalleryService.Object);

            controller.ControllerContext = APIControllerUtils.CreateApiControllerContext(UserEntities[0].Id.ToString());
            GalleryEntity newGalleryEntity = new GalleryEntity()
            {
                Id       = Guid.NewGuid(),
                Name     = "TestGalleryName",
                fk_owner = UserEntities[0].Id,
                owner    = UserEntities[0]
            };

            GalleryEntities.Add(newGalleryEntity);

            // Act
            GalleryPutDTO             galleryPutDto = new GalleryPutDTO("UpdatedTestGalleryName");
            ActionResult <GalleryDTO> response      = await controller.PutGallery(newGalleryEntity.Id, galleryPutDto);

            // Assert
            Assert.IsInstanceOfType(response.Result, typeof(CreatedAtActionResult));
            var result = response.Result as CreatedAtActionResult;

            Assert.AreEqual(201, result.StatusCode);
            Assert.IsNotNull(result.Value);
            Assert.IsInstanceOfType(result.Value, typeof(GalleryDTO));
            GalleryDTO retrievedItem = result.Value as GalleryDTO;

            Assert.AreEqual(retrievedItem.Id, newGalleryEntity.Id);
            Assert.AreEqual(retrievedItem.Name, "UpdatedTestGalleryName");
            GalleryEntities.Remove(newGalleryEntity);
        }
コード例 #5
0
        public void Delete(int id)
        {
            GalleryEntity entity = FindById(id);

            databaseContext.Gallery.Remove(entity);
            databaseContext.SaveChanges();
        }
コード例 #6
0
        public IActionResult Index(int galleryId)
        {
            GalleryEntity      galleryEntity = galleryRepository.FindById(galleryId);
            List <ImageEntity> imageEntities = imageRepository.FindAllByGalleryId(galleryId);
            GalleryViewModel   viewModel     = new GalleryViewModel(galleryEntity, imageEntities);

            return(View("Index", viewModel));
        }
コード例 #7
0
        public async Task <GalleryDTO> GetGalleryAsync(Guid galleryId)
        {
            GalleryEntity galleryEntity = await _galleryRepository.GetGallery(galleryId);

            int numImagesInGallery = _imageRepository.GetNumberOfImagesInGallery(galleryEntity.Id);

            return(galleryEntity.ToGalleryDto(numImagesInGallery));
        }
コード例 #8
0
        public async Task <GalleryDTO> CreateGalleryAsync(Guid userId, GalleryCreationDTO galleryCreationDTO)
        {
            GalleryEntity entity = galleryCreationDTO.ToGalleryEntity(userId);

            GalleryEntity addedEntity = await _galleryRepository.PostGallery(entity);

            if (_galleryRepository.Save() == false)
            {
                throw new Exception();
            }

            return(addedEntity.ToGalleryDto(0));
        }
コード例 #9
0
        public void Save(int id, string label)
        {
            GalleryEntity entity;

            if (id == 0)
            {
                entity       = new GalleryEntity();
                entity.Id    = id;
                entity.Label = label;
                databaseContext.Gallery.Add(entity);
                databaseContext.SaveChanges();
                return;
            }
            entity       = FindById(id);
            entity.Label = label;
            databaseContext.Gallery.Update(entity);
            databaseContext.SaveChanges();
        }
コード例 #10
0
        public async Task <GalleryDTO> PutGalleryAsync(Guid userId, Guid galleryId, GalleryPutDTO galleryPutDTO)
        {
            GalleryEntity galleryEntity = await _galleryRepository.GetGallery(galleryId);

            galleryPutDTO.ToGalleryEntity(ref galleryEntity);

            await _galleryRepository.PutGallery(galleryEntity);

            if (_galleryRepository.Save() == false)
            {
                throw new Exception();
            }

            int        numImagesInGallery = _imageRepository.GetNumberOfImagesInGallery(galleryEntity.Id);
            GalleryDTO dtoToReturn        = galleryEntity.ToGalleryDto(numImagesInGallery);

            return(dtoToReturn);
        }
コード例 #11
0
 public static GalleryDTO ToGalleryDto(this GalleryEntity galleryEntity, int numberOfImages)
 {
     return(new GalleryDTO(galleryEntity.Id, galleryEntity.fk_owner, galleryEntity.Name, numberOfImages));
 }
コード例 #12
0
        public async Task <bool> DoesGalleryExistAsync(Guid galleryId)
        {
            GalleryEntity gallery = await _galleryRepository.GetGallery(galleryId);

            return(gallery != null);
        }
コード例 #13
0
 public async Task PutGallery(GalleryEntity galleryItem)
 {
     // This repository uses Entity Framework
     // Method is empty because caller is updating entity properties in-place
     // The entity is tracked by EF and reflected onto the DB when calling Save()
 }
コード例 #14
0
        public async Task <GalleryEntity> PostGallery(GalleryEntity galleryItem)
        {
            var changeTracking = await _context.Galleries.AddAsync(galleryItem);

            return(changeTracking.Entity);
        }
コード例 #15
0
        public async Task <bool> IsGalleryOwnedByUserAsync(Guid galleryId, Guid userId)
        {
            GalleryEntity gallery = await _galleryRepository.GetGallery(galleryId);

            return(gallery.fk_owner == userId);
        }
コード例 #16
0
ファイル: MockFactory.cs プロジェクト: kim-cv/Gallery-Program
        public static Mock <IGalleryService> CreateGalleryServiceMock(List <GalleryEntity> GalleryEntities, List <ImageEntity> ImageEntities)
        {
            Mock <IGalleryService> mock = new Mock <IGalleryService>();

            mock
            .Setup(service => service.DoesGalleryExistAsync(It.IsAny <Guid>()))
            .ReturnsAsync((Guid galleryId) =>
            {
                return(GalleryEntities.FirstOrDefault(tmp => tmp.Id == galleryId) != null);
            });

            mock
            .Setup(service => service.IsGalleryOwnedByUserAsync(It.IsAny <Guid>(), It.IsAny <Guid>()))
            .ReturnsAsync((Guid galleryId, Guid userId) =>
            {
                GalleryEntity galleryEntity = GalleryEntities.FirstOrDefault(tmp => tmp.Id == galleryId);

                return(galleryEntity.fk_owner == userId);
            });

            mock
            .Setup(service => service.CreateGalleryAsync(It.IsAny <Guid>(), It.IsAny <GalleryCreationDTO>()))
            .ReturnsAsync((Guid userId, GalleryCreationDTO galleryCreationDTO) =>
            {
                GalleryEntity entity = galleryCreationDTO.ToGalleryEntity(userId);
                GalleryEntities.Add(entity);
                return(entity.ToGalleryDto(0));
            });

            mock
            .Setup(service => service.PutGalleryAsync(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <GalleryPutDTO>()))
            .ReturnsAsync((Guid userId, Guid galleryId, GalleryPutDTO galleryPutDTO) =>
            {
                GalleryEntity galleryEntity = GalleryEntities.FirstOrDefault(tmp => tmp.Id == galleryId);

                galleryPutDTO.ToGalleryEntity(ref galleryEntity);

                int numImagesInGallery = ImageEntities.FindAll(tmp => tmp.fk_gallery == galleryId).Count();

                return(galleryEntity.ToGalleryDto(numImagesInGallery));
            });

            mock
            .Setup(service => service.GetGalleryAsync(It.IsAny <Guid>()))
            .ReturnsAsync((Guid galleryId) =>
            {
                GalleryEntity entity = GalleryEntities.FirstOrDefault(tmp => tmp.Id == galleryId);

                int numImagesInGallery = ImageEntities.FindAll(tmp => tmp.fk_gallery == galleryId).Count();

                return(entity.ToGalleryDto(numImagesInGallery));
            });

            mock
            .Setup(service => service.GetGalleriesByUserAsync(It.IsAny <Guid>(), It.IsAny <Pagination>()))
            .ReturnsAsync((Guid userId, Pagination pagination) =>
            {
                IEnumerable <GalleryEntity> galleryEntities = GalleryEntities.FindAll(tmp => tmp.fk_owner == userId);

                IEnumerable <GalleryDTO> galleryDTOs = galleryEntities.Select(tmpEntity =>
                {
                    int numImagesInGallery = ImageEntities.FindAll(tmp => tmp.fk_gallery == tmpEntity.Id).Count();
                    return(tmpEntity.ToGalleryDto(numImagesInGallery));
                });

                return(galleryDTOs);
            });

            mock
            .Setup(service => service.DeleteGalleryAsync(It.IsAny <Guid>()))
            .Callback((Guid galleryId) =>
            {
                GalleryEntity entity = GalleryEntities.FirstOrDefault(tmp => tmp.Id == galleryId);
                GalleryEntities.Remove(entity);
            });

            return(mock);
        }
コード例 #17
0
 /// <summary>
 /// Updates the entity properties in-place
 /// </summary>
 public static void ToGalleryEntity(this GalleryPutDTO galleryDto, ref GalleryEntity entityToUpdate)
 {
     entityToUpdate.Name = galleryDto.Name;
 }