public ActionResult AddEditCollection(int CollectionId)
        {
            var UserId = Session["AdminId"];

            if (UserId != null)
            {
                collectionRepository = new CollectionRepository();
                categoryRepository   = new CategoryRepository();
                bannersRepository    = new BannersRepository();

                List <Side> SideList = new List <Side>();
                Side        side     = new Side();
                side.sId   = 1;
                side.sName = "Right";
                SideList.Add(side);
                side       = new Side();
                side.sId   = 2;
                side.sName = "Left";
                SideList.Add(side);

                ViewBag.SideList        = new SelectList(SideList, "sId", "sName");
                ViewBag.Banners         = new SelectList(bannersRepository.GetBanners(), "Id", "BannerKeyName");
                ViewBag.Categories      = new SelectList(categoryRepository.getAllCategory(), "Id", "CategoryName");
                ViewBag.CollectionsList = new SelectList(collectionRepository.GetAllCollections(), "CollectionId", "CollectionName");
                ViewBag.SubCategories   = new SelectList(_DBContext.SubCategories.ToList(), "Id", "SubCategoryName");

                if (CollectionId > 0)
                {
                    var collection = collectionRepository.GetCollectionsById(CollectionId);
                    return(View(collection));
                }
                return(View());
            }
            return(RedirectToAction("Index", "Admin"));
        }
예제 #2
0
        public async Task GetAsync_NonExistingBannerId_ReturnsNull()
        {
            // Arrange
            var bannersRepository = new BannersRepository(_fixture.Options);

            // Act
            var result = await bannersRepository.GetAsync(123);

            // Assert
            Assert.Null(result);
        }
예제 #3
0
        public async Task DeleteAsync_NonExistingBanner_NoErrors()
        {
            // Arrange
            var bannerId          = GetRandomIntId();
            var bannersRepository = new BannersRepository(_fixture.Options);

            // Act
            await bannersRepository.DeleteAsync(bannerId);

            // Assert
        }
예제 #4
0
        public async Task GetAllAsync_NoBanners_ReturnsEmptyCollection()
        {
            // Arrange
            var bannersRepository = new BannersRepository(_fixture.Options);

            // Act
            var result = await bannersRepository.GetAllAsync();

            // Assert
            Assert.Empty(result);
        }
예제 #5
0
        public async Task CreateAsync_SomeBanners_NewBannerModifiedTimeIsEmpty()
        {
            // Arrange
            var bannersRepository = new BannersRepository(_fixture.Options);
            var newBanner         = new Banner()
            {
                Id   = 1,
                Html = "<html></html>",
            };

            // Act
            var result = await bannersRepository.CreateAsync(newBanner);

            // Assert
            Assert.Null(result.Modified);
        }
예제 #6
0
        public async Task DeleteAsync_ExistingBanner_ReturnsTrue()
        {
            // Arrange
            var bannerId          = GetRandomIntId();
            var bannersRepository = new BannersRepository(_fixture.Options);

            // Act
            await bannersRepository.CreateAsync(new Banner { Id = bannerId, Html = string.Empty });

            await bannersRepository.DeleteAsync(bannerId);

            var result = await bannersRepository.GetAsync(bannerId);

            // Assert
            Assert.Null(result);
        }
예제 #7
0
        public async Task CreateAsync_Always_ImpossibleToInsertSeveralBroductsWithSameId()
        {
            // Arrange
            var bannerId          = GetRandomIntId();
            var bannersRepository = new BannersRepository(_fixture.Options);

            // Act
            var result = await bannersRepository.CreateAsync(new Banner { Id = bannerId, Html = string.Empty });

            // Assert
            Assert.NotNull(result);
            Assert.Equal(bannerId, result.Id);
            await Assert.ThrowsAsync <MongoWriteException>(() => bannersRepository.CreateAsync(new Banner {
                Id = bannerId, Html = string.Empty
            }));
        }
예제 #8
0
        public async Task UpdateAsync_NonExistingBanner_ReturnsNull()
        {
            // Arrange
            var bannerId          = GetRandomIntId();
            var bannersRepository = new BannersRepository(_fixture.Options);
            var newBanner         = new Banner()
            {
                Id   = bannerId,
                Html = "<html></html>",
            };

            // Act
            await bannersRepository.UpdateAsync(newBanner);

            var banner = await bannersRepository.GetAsync(bannerId);

            // Assert
            Assert.Null(banner);
        }
예제 #9
0
        public async Task GetAllAsync_SomeBanners_ReturnsNonEmptyCollection()
        {
            // Arrange
            var bannerId  = GetRandomIntId();
            var newBanner = new Banner()
            {
                Id   = bannerId,
                Html = "<html></html>",
            };
            var bannersRepository = new BannersRepository(_fixture.Options);

            // Act
            await bannersRepository.CreateAsync(newBanner);

            var allBanners = await bannersRepository.GetAllAsync();

            // Assert
            Assert.Single(allBanners, x => x.Id == bannerId);
        }
예제 #10
0
        public async Task GetAsync_ExistingBannerId_ReturnsBanner()
        {
            // Arrange
            var newBanner = new Banner()
            {
                Id      = 1,
                Html    = "<html></html>",
                Created = new DateTime()
            };
            var bannersRepository = new BannersRepository(_fixture.Options);

            // Act
            await bannersRepository.CreateAsync(newBanner);

            var result = await bannersRepository.GetAsync(newBanner.Id);

            // Assert
            Assert.Equal(newBanner.Id, result.Id);
            Assert.Equal(newBanner.Html, result.Html);
        }
예제 #11
0
        public async Task UpdateAsync_ExistingBanner_ReturnsTrue()
        {
            // Arrange
            var          bannerId          = GetRandomIntId();
            const string expectedHtml      = "<html></html>";
            var          bannersRepository = new BannersRepository(_fixture.Options);

            // Act
            var existingBanner = await bannersRepository.CreateAsync(new Banner { Id = bannerId, Html = string.Empty });

            await bannersRepository.UpdateAsync(new Banner { Id = bannerId, Html = expectedHtml });

            var changedBanner = await bannersRepository.GetAsync(bannerId);

            // Assert
            Assert.NotNull(changedBanner);
            Assert.Equal(existingBanner.Id, changedBanner.Id);
            Assert.NotEqual(existingBanner.Html, changedBanner.Html);
            Assert.Equal(changedBanner.Html, expectedHtml);
        }
예제 #12
0
        public async Task CreateAsync_IncorrectHtml_ReturningException()
        {
            // Arrange
            var bannerId          = GetRandomIntId();
            var bannersRepository = new BannersRepository(_fixture.Options);

            // Act

            // Assert
            await Assert.ThrowsAsync <ArgumentException>(() => bannersRepository.CreateAsync(new Banner {
                Id = bannerId, Html = "<html></span>"
            }));

            await Assert.ThrowsAsync <ArgumentException>(() => bannersRepository.CreateAsync(new Banner {
                Id = bannerId + 1, Html = "<html></span></html>"
            }));

            await Assert.ThrowsAsync <ArgumentException>(() => bannersRepository.CreateAsync(new Banner {
                Id = bannerId + 2, Html = "<html></span><span></html>"
            }));
        }
예제 #13
0
        public async Task CreateAsync_SomeBanners_CreatedTimeIsIndependentToGiven()
        {
            // Arrange
            var bannersRepository = new BannersRepository(_fixture.Options);
            var startTime         = DateTime.UtcNow;
            var newBanner         = new Banner()
            {
                Id      = 1,
                Html    = "<html></html>",
                Created = DateTime.UtcNow.AddDays(-10)
            };

            // Act
            var result = await bannersRepository.CreateAsync(newBanner);

            await Task.Delay(0);

            // Assert
            Assert.NotNull(result);
            Assert.True(result.Created >= startTime);
            Assert.True(DateTime.UtcNow > result.Created);
        }
예제 #14
0
        public async Task UpdateAsync_Always_SetsModified()
        {
            // Arrange
            var bannerId          = GetRandomIntId();
            var bannersRepository = new BannersRepository(_fixture.Options);
            var newBanner         = new Banner()
            {
                Id   = bannerId,
                Html = "<html></html>",
            };

            // Act
            var createdBanner = await bannersRepository.CreateAsync(newBanner);

            await bannersRepository.UpdateAsync(new Banner { Id = bannerId, Html = "<html></html>" });

            var changedBanner = await bannersRepository.GetAsync(bannerId);

            // Assert
            Assert.Null(createdBanner.Modified);
            Assert.NotNull(changedBanner.Modified);
        }
예제 #15
0
        public async Task UpdateAsync_Never_UpdatesCreated()
        {
            // Arrange
            var bannerId          = GetRandomIntId();
            var bannersRepository = new BannersRepository(_fixture.Options);
            var newBanner         = new Banner()
            {
                Id   = bannerId,
                Html = "<html></html>",
            };

            // Act
            await bannersRepository.CreateAsync(newBanner);

            var createdBanner = await bannersRepository.GetAsync(bannerId);

            await bannersRepository.UpdateAsync(new Banner { Id = bannerId, Html = "<html></html>" });

            var changedBanner = await bannersRepository.GetAsync(bannerId);

            // Assert
            Assert.Equal(createdBanner.Created, changedBanner.Created);
        }