コード例 #1
0
        public void DeleteArtWorkShouldDeleteArtworkCorrect()
        {
            // Arrange

            var options = new DbContextOptionsBuilder <WAGDbContext>()
                          .UseInMemoryDatabase(databaseName: "Delete_ArtWork_Db")
                          .Options;

            var dbContext    = new WAGDbContext(options);
            var service      = new ArtisticWorkService(dbContext);
            var artisticWork = new ArtisticWork();

            dbContext.ArtisticWorks.Add(artisticWork);
            dbContext.SaveChanges();

            var artWorkId = dbContext.ArtisticWorks.LastOrDefault().Id;

            // Act
            service.DeleteArtWork(artWorkId);

            //Assert
            Assert.True(dbContext
                        .ArtisticWorks
                        .Any(artwork => artwork.Id == artWorkId) == false);
        }
コード例 #2
0
        public void AddArtWork(AddArtWorkViewModel addArtWorkViewModel)
        {
            var technique = addArtWorkViewModel.Technique;

            var category = this.DbContext.ArtisticWorkCategories.FirstOrDefault(c => c.Id == addArtWorkViewModel.CategoryId);

            var artWork = new ArtisticWork()
            {
                Year                 = addArtWorkViewModel.Year,
                Height               = addArtWorkViewModel.Height,
                Width                = addArtWorkViewModel.Width,
                Price                = addArtWorkViewModel.Price,
                Availability         = addArtWorkViewModel.Availability,
                HasFrame             = addArtWorkViewModel.HasFrame,
                ArtisticWorkCategory = category,
                Technique            = technique,
                CreatedOn            = DateTime.UtcNow
            };

            string imgFileName = $"{Guid.NewGuid()}{GlobalConstants.JpegFileExtension}";

            if (addArtWorkViewModel.Picture != null)
            {
                artWork.PictureFileName = this.FileService.UploadImageAsync(Constants.GlobalConstants.ArtWorksImageDirectoryPath, imgFileName, addArtWorkViewModel.Picture).Result;
            }

            this.DbContext.ArtisticWorks.Add(artWork);
            this.DbContext.SaveChanges();
        }
コード例 #3
0
        public void AddArtWork(ArtisticWork newArtWork)
        {
            newArtWork.ArtisticWorkCategory = this.DbContext.ArtisticWorkCategories.FirstOrDefault(c => c.Id == newArtWork.ArtisticWorkCategoryId);
            newArtWork.CreatedOn            = DateTime.UtcNow;

            this.DbContext.ArtisticWorks.Add(newArtWork);
            this.DbContext.SaveChanges();
        }
コード例 #4
0
        public void EditArtWorkShouldEditsArtworkCorrect()
        {
            var options = new DbContextOptionsBuilder <WAGDbContext>()
                          .UseInMemoryDatabase(databaseName: "Edit_ArtWork_Db")
                          .Options;

            var dbContext = new WAGDbContext(options);

            var service = new ArtisticWorkService(dbContext, null);

            var artisticWork = new ArtisticWork()
            {
                Year         = 2015,
                Height       = 120.5,
                Width        = 80.2,
                Price        = 350.99m,
                Availability = true,
                HasFrame     = true,
                Technique    = "Test Technique",
            };

            dbContext.ArtisticWorks.Add(artisticWork);
            dbContext.SaveChanges();

            var editArtWorkViewModel = new EditArtWorkViewModel()
            {
                Year         = 2016,
                Height       = 130.6,
                Width        = 70.3,
                Price        = 420.50m,
                Availability = false,
                HasFrame     = false,
                Technique    = "Test Technique - Edited",
            };

            var id = dbContext.ArtisticWorks.LastOrDefault().Id;

            service.EditArtWork(id, editArtWorkViewModel);

            var artWork = dbContext
                          .ArtisticWorks
                          .FirstOrDefault(artwork => artwork.Id == id);

            Assert.Equal(editArtWorkViewModel.Year, artWork.Year);
            Assert.Equal(editArtWorkViewModel.Height, artWork.Height);
            Assert.Equal(editArtWorkViewModel.Width, artWork.Width);
            Assert.Equal(editArtWorkViewModel.Price, artWork.Price);
            Assert.Equal(editArtWorkViewModel.Availability, artWork.Availability);
            Assert.Equal(editArtWorkViewModel.HasFrame, artWork.HasFrame);
            Assert.Equal(editArtWorkViewModel.Technique, artWork.Technique);
        }
コード例 #5
0
        public void EditArtWork(ArtisticWork trackedArtworkUpdate)
        {
            var categoryNew = DbContext.ArtisticWorkCategories.FirstOrDefault(c => c.Id == trackedArtworkUpdate.ArtisticWorkCategoryId);

            if (categoryNew != null)
            {
                trackedArtworkUpdate.ArtisticWorkCategory = categoryNew;
            }

            trackedArtworkUpdate.EditedOn = DateTime.UtcNow;

            DbContext.ArtisticWorks.Update(trackedArtworkUpdate);
            DbContext.SaveChanges();
        }
コード例 #6
0
        public IActionResult DeleteArtWork(int id)
        {
            ArtisticWork artWorkToDelete = ArtisticWorkService.GetArtisticWorkById(id);

            if (artWorkToDelete == null)
            {
                return(RedirectToAction("Categories", "ArtisticWork", new { area = "" }));
            }

            var ViewModel = mapper.Map <DeleteArtWorkViewModel>(artWorkToDelete);

            ViewModel.Cloudinary = this.cloudinaryService.GetCloudinaryInstance();

            return(View(ViewModel));
        }
コード例 #7
0
        public IActionResult EditArtWork(EditArtWorkViewModel viewModel)
        {
            var existingArtWork = this.ArtisticWorkService.GetArtisticWorkById(viewModel.Id);

            if (existingArtWork == null)
            {
                return(RedirectToAction("Categories", "ArtisticWork", new { area = "" }));
            }
            ;

            ArtisticWork ArtWorkUpdate = mapper.Map(viewModel, existingArtWork);

            this.ArtisticWorkService.EditArtWork(ArtWorkUpdate);

            return(RedirectToAction("Categories", "ArtisticWork", new { area = "" }));
        }
コード例 #8
0
        public void AddArtWorkShouldAddsArtworkCorrect()
        {
            // Arrange

            var options = new DbContextOptionsBuilder <WAGDbContext>()
                          .UseInMemoryDatabase(databaseName: "Add_ArtWork_Db")
                          .Options;

            var dbContext = new WAGDbContext(options);

            var service = new ArtisticWorkService(dbContext);

            var ArtWorkToAdd = new ArtisticWork()
            {
                Year                   = 2015,
                Height                 = 120.5,
                Width                  = 80.2,
                Price                  = 350.99m,
                Availability           = true,
                HasFrame               = true,
                Technique              = "Test Technique",
                ArtisticWorkCategoryId = 5,
                PictureFileName        = "Test_Guid.23AnMd9*!sdpfok"
            };

            // Act
            service.AddArtWork(ArtWorkToAdd);

            var artWork = dbContext.ArtisticWorks.FirstOrDefault();

            // Assert
            Assert.NotNull(artWork);
            Assert.Equal(ArtWorkToAdd.Year, artWork.Year);
            Assert.Equal(ArtWorkToAdd.Height, artWork.Height);
            Assert.Equal(ArtWorkToAdd.Width, artWork.Width);
            Assert.Equal(ArtWorkToAdd.Price, artWork.Price);
            Assert.Equal(ArtWorkToAdd.Availability, artWork.Availability);
            Assert.Equal(ArtWorkToAdd.HasFrame, artWork.HasFrame);
            Assert.Equal(ArtWorkToAdd.Technique, artWork.Technique);
            Assert.Equal(ArtWorkToAdd.ArtisticWorkCategoryId, artWork.ArtisticWorkCategoryId);
            Assert.Equal(ArtWorkToAdd.PictureFileName, artWork.PictureFileName);
            Assert.True(artWork.CreatedOn > DateTime.MinValue);
        }
コード例 #9
0
        public IActionResult EditArtWork(int id)
        {
            ArtisticWork artWorkToEdit = this.ArtisticWorkService.GetArtisticWorkById(id);

            if (artWorkToEdit == null)
            {
                return(RedirectToAction("Categories", "ArtisticWork", new { area = "" }));
            }

            var viewModel = mapper.Map <EditArtWorkViewModel>(artWorkToEdit);

            var existingArtWorkCategories = this.ArtisticWorkService.GetArtisticWorkCategories();

            viewModel.ExistingCategories = mapper.Map <IEnumerable <ArtWorkCategoryViewModel> >(existingArtWorkCategories);

            viewModel.Cloudinary = this.cloudinaryService.GetCloudinaryInstance();

            return(View(viewModel));
        }
コード例 #10
0
        public void EditArtWorkShouldEditsArtworkCorrect()
        {
            // Arrange

            var options = new DbContextOptionsBuilder <WAGDbContext>()
                          .UseInMemoryDatabase(databaseName: "Edit_ArtWork_Db")
                          .Options;

            var dbContext = new WAGDbContext(options);

            var service = new ArtisticWorkService(dbContext);

            var artWorkSeed = new ArtisticWork()
            {
                Year                   = 2015,
                Height                 = 120.5,
                Width                  = 80.2,
                Price                  = 350.99m,
                Availability           = true,
                HasFrame               = true,
                Technique              = "Test Technique",
                ArtisticWorkCategoryId = 5,
                PictureFileName        = "test_GUID_abc123",
                CreatedOn              = DateTime.UtcNow
            };

            dbContext.ArtisticWorks.Add(artWorkSeed);
            dbContext.SaveChanges();

            var artworkToUpdate = dbContext.ArtisticWorks.FirstOrDefault();

            artworkToUpdate.Year                   = 2016;
            artworkToUpdate.Height                 = 130.6;
            artworkToUpdate.Width                  = 70.3;
            artworkToUpdate.Price                  = 420.50m;
            artworkToUpdate.Availability           = false;
            artworkToUpdate.HasFrame               = false;
            artworkToUpdate.Technique              = "Test Technique - Edited";
            artworkToUpdate.ArtisticWorkCategoryId = 4;
            artworkToUpdate.PictureFileName        = "test_GUID_321cba";

            // Act
            service.EditArtWork(artworkToUpdate);

            var updatedArtWork = dbContext
                                 .ArtisticWorks
                                 .FirstOrDefault(artwork => artwork.Id == artworkToUpdate.Id);

            // Assert
            Assert.Equal(artworkToUpdate.Year, updatedArtWork.Year);
            Assert.Equal(artworkToUpdate.Height, updatedArtWork.Height);
            Assert.Equal(artworkToUpdate.Width, updatedArtWork.Width);
            Assert.Equal(artworkToUpdate.Price, updatedArtWork.Price);
            Assert.Equal(artworkToUpdate.Availability, updatedArtWork.Availability);
            Assert.Equal(artworkToUpdate.HasFrame, updatedArtWork.HasFrame);
            Assert.Equal(artworkToUpdate.Technique, updatedArtWork.Technique);
            Assert.Equal(artworkToUpdate.ArtisticWorkCategoryId, updatedArtWork.ArtisticWorkCategoryId);
            Assert.Equal(artworkToUpdate.PictureFileName, updatedArtWork.PictureFileName);
            Assert.Equal(artWorkSeed.CreatedOn, updatedArtWork.CreatedOn);
            Assert.True(updatedArtWork.EditedOn > DateTime.MinValue);
        }