コード例 #1
0
        public ActionResult EditPublisher(PublishersEditPublisherVM model)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            PublishersRepository           publishersRepository = new PublishersRepository(context);

            Publisher publisher = null;

            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            else
            {
                if (model.ID > 0)
                {
                    publisher = publishersRepository.GetByID(model.ID);
                }
                else
                {
                    publisher = new Publisher();
                }

                publisher.ID      = model.ID;
                publisher.Name    = model.Name;
                publisher.Address = model.Address;

                publishersRepository.Save(publisher);
            }

            return(RedirectToAction("Index", "Publishers"));
        }
コード例 #2
0
        public ActionResult EditBook(int id)
        {
            LibraryManagementSystemContext context    = new LibraryManagementSystemContext();
            BooksRepository      booksRepository      = new BooksRepository(context);
            PublishersRepository publishersRepository = new PublishersRepository(context);
            BooksEditBookVM      model = new BooksEditBookVM();

            Book book = booksRepository.GetByID(id);

            if (id > 0)
            {
                if (book == null)
                {
                    return(RedirectToAction("Index", "Books"));
                }

                model.ID            = book.ID;
                model.Title         = book.Title;
                model.PublisherID   = book.Publisher.ID;
                model.StockCount    = book.StockCount;
                model.DeliveryPrice = book.DeliveryPrice;
                model.DateReceived  = book.DateReceived;
                model.DatePublished = book.DatePublished;
            }
            else
            {
                book = new Book();
            }

            model.Publishers = model.Publishers ?? new List <SelectListItem>();
            model.Publishers = SelectListHandler.Create <Publisher>(
                publishersRepository.GetAll(), p => p.Name, p => p.ID.ToString(), model.PublisherID.ToString());

            return(View(model));
        }
コード例 #3
0
        public ActionResult Details(int id, string sortOrder)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            PublishersRepository           publishersRepository = new PublishersRepository(context);
            BooksRepository     booksRepository = new BooksRepository(context);
            PublishersDetailsVM model           = new PublishersDetailsVM();

            this.TryUpdateModel(model);

            var publisher = publishersRepository.GetByID(id);

            if (publisher != null)
            {
                model.ID                           = publisher.ID;
                model.PublisherName                = publisher.Name;
                model.Address                      = publisher.Address;
                model.BooksPager                   = model.BooksPager ?? new GenericPagerVM();
                model.BooksPager.CurrentPage       = model.BooksPager.CurrentPage == 0 ? 1 : model.BooksPager.CurrentPage;
                model.BooksPager.Action            = "Details";
                model.BooksPager.Controller        = "Publishers";
                model.BooksPager.Prefix            = "BooksPager";
                model.BooksPager.CurrentParameters = new Dictionary <string, object>()
                {
                    { "BookTitle", model.BookTitle },
                    { "BooksPager.CurrentPage", model.BooksPager.CurrentPage }
                };

                #region Sorting and Filtering

                Expression <Func <Book, bool> > filter = b =>
                                                         (string.IsNullOrEmpty(model.BookTitle) || b.Title.Contains(model.BookTitle));
                model.BooksPager.PagesCount = GetPagesCount(filter);

                ViewBag.BookSortParam = string.IsNullOrEmpty(sortOrder) ? "book_desc" : "";
                switch (sortOrder)
                {
                case "book_desc":
                    model.Books = booksRepository
                                  .GetAll(model.BooksPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderByDescending(b => b.Title))
                                  .Where(b => b.PublisherID == id)
                                  .ToList();
                    break;

                default:
                    model.Books = booksRepository
                                  .GetAll(model.BooksPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderBy(b => b.Title))
                                  .Where(b => b.PublisherID == id)
                                  .ToList();
                    break;
                }
                #endregion

                return(View(model));
            }
            else
            {
                return(RedirectToAction("Index", "Publishers"));
            }
        }
コード例 #4
0
        public CreateEditPublisher()
        {
            InitializeComponent();
            var context = new LibraryContext();

            _publishersRepository = new PublishersRepository(context);
            createEditButton.Text = @"Create";
        }
コード例 #5
0
        public ActionResult Index(string sortOrder)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            PublishersRepository           publishersRepository = new PublishersRepository(context);
            PublishersIndexVM model = new PublishersIndexVM();

            this.TryUpdateModel(model);

            model.PublishersPager                   = model.PublishersPager ?? new GenericPagerVM();
            model.PublishersPager.CurrentPage       = model.PublishersPager.CurrentPage == 0 ? 1 : model.PublishersPager.CurrentPage;
            model.PublishersPager.Action            = "Index";
            model.PublishersPager.Controller        = "Publishers";
            model.PublishersPager.Prefix            = "PublishersPager";
            model.PublishersPager.CurrentParameters = new Dictionary <string, object>()
            {
                { "PublisherName", model.PublisherName },
                { "PublisherAddress", model.PublisherAddress },
                { "PublishersPager.CurrentPage", model.PublishersPager.CurrentPage }
            };

            #region Sorting and Filtering
            Expression <Func <Publisher, bool> > filter = p =>
                                                          (string.IsNullOrEmpty(model.PublisherName) || p.Name.Contains(model.PublisherName)) &&
                                                          (string.IsNullOrEmpty(model.PublisherAddress) || p.Address.Contains(model.PublisherAddress));
            model.PublishersPager.PagesCount = GetPagesCount(filter);

            ViewBag.PublisherSortParam = string.IsNullOrEmpty(sortOrder) ? "publisher_desc" : "";
            ViewBag.AddressSortParam   = sortOrder == "Address" ? "address_desc" : "Address";
            switch (sortOrder)
            {
            case "publisher_desc":
                model.PublishersList = publishersRepository
                                       .GetAll(model.PublishersPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderByDescending(p => p.Name))
                                       .ToList();
                break;

            case "Address":
                model.PublishersList = publishersRepository
                                       .GetAll(model.PublishersPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderBy(p => p.Address))
                                       .ToList();
                break;

            case "address_desc":
                model.PublishersList = publishersRepository
                                       .GetAll(model.PublishersPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderByDescending(p => p.Address))
                                       .ToList();
                break;

            default:
                model.PublishersList = publishersRepository
                                       .GetAll(model.PublishersPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderBy(p => p.Name))
                                       .ToList();
                break;
            }
            #endregion

            return(View(model));
        }
コード例 #6
0
        public PublishersList()
        {
            InitializeComponent();
            var context = new LibraryContext();

            _publishersRepository = new PublishersRepository(context);

            FillPublishersListBox();
        }
コード例 #7
0
        public PublisherAddForm()
        {
            InitializeComponent();
            var context = new LibraryContext();

            _publishersRepository = new PublishersRepository(context);

            FillBooks();
        }
コード例 #8
0
        public ActionResult Details(int id, string sortOrder)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            PublishersRepository publishersRepository = new PublishersRepository(context);
            BooksRepository booksRepository = new BooksRepository(context);
            PublishersDetailsVM model = new PublishersDetailsVM();
            this.TryUpdateModel(model);

            var publisher = publishersRepository.GetByID(id);
            if (publisher != null)
            {
                model.ID = publisher.ID;
                model.PublisherName = publisher.Name;
                model.Address = publisher.Address;
                model.BooksPager = model.BooksPager ?? new GenericPagerVM();
                model.BooksPager.CurrentPage = model.BooksPager.CurrentPage == 0 ? 1 : model.BooksPager.CurrentPage;
                model.BooksPager.Action = "Details";
                model.BooksPager.Controller = "Publishers";
                model.BooksPager.Prefix = "BooksPager";
                model.BooksPager.CurrentParameters = new Dictionary<string, object>()
                {
                    { "BookTitle", model.BookTitle },
                    { "BooksPager.CurrentPage", model.BooksPager.CurrentPage }
                };

                #region Sorting and Filtering

                Expression<Func<Book, bool>> filter = b =>
                            (string.IsNullOrEmpty(model.BookTitle) || b.Title.Contains(model.BookTitle));
                model.BooksPager.PagesCount = GetPagesCount(filter);

                ViewBag.BookSortParam = string.IsNullOrEmpty(sortOrder) ? "book_desc" : "";
                switch (sortOrder)
                {
                    case "book_desc":
                        model.Books = booksRepository
                            .GetAll(model.BooksPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderByDescending(b => b.Title))
                            .Where(b => b.PublisherID == id)
                            .ToList();
                        break;
                    default:
                        model.Books = booksRepository
                           .GetAll(model.BooksPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderBy(b => b.Title))
                           .Where(b => b.PublisherID == id)
                           .ToList();
                        break;
                }
                #endregion

                return View(model);
            }
            else
            {
                return RedirectToAction("Index", "Publishers");
            }
        }
コード例 #9
0
        // List refresh methods

        private void RefreshRepositories()
        {
            var context = new LibraryContext();

            _authorsRepository    = new AuthorsRepository(context);
            _studentsRepository   = new StudentsRepository(context);
            _publishersRepository = new PublishersRepository(context);
            _booksRepository      = new BooksRepository(context);
            _loansRepository      = new LoansRepository(context);
        }
コード例 #10
0
        public PublisherDetailsForm(string publisherId)
        {
            InitializeComponent();
            var context = new LibraryContext();

            _publishersRepository = new PublishersRepository(context);

            _publisher = _publishersRepository.GetPublisherById(int.Parse(publisherId));

            FillDetails();
        }
コード例 #11
0
        public void Verify_Get_ByKey_Should_ReturnTheCorrectPublisher()
        {
            // Arrange
            Mock <IDbSet <Publisher> > mockSetPublishers;
            var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
            var repository  = new PublishersRepository(mockContext.Object);
            // Act
            var publishers = repository.Get("KING-STEPHEN");

            // Assert
            Assert.Equal("/TEST/KING-STEPHEN", publishers.ApiDetailUrl);
        }
コード例 #12
0
        public CreateEditPublisher(Publisher publisherToEdit)
        {
            InitializeComponent();

            var context = new LibraryContext();

            _publishersRepository = new PublishersRepository(context);
            _publisherToEdit      = publisherToEdit;
            createEditButton.Text = @"Edit";

            FillInputFields();
        }
 public void Verify_Add_Should_AddTheEntityToTheContext()
 {
     // Arrange
     Mock<IDbSet<Publisher>> mockSetPublishers;
     var mockContext = PublishersMockingSetup.DoMockingSetupForContext(false, out mockSetPublishers);
     var repository = new PublishersRepository(mockContext.Object);
     var publishers = new Publisher { Active = true, CustomKey = "SALVATORE-RAA", };
     // Act
     repository.Add(publishers);
     // Assert
     mockSetPublishers.Verify(x => x.Add(publishers), Times.Once);
 }
 public void Verify_Deactivate_Should_SetTheActivePropertyToFalseOnTheEntity()
 {
     // Arrange
     Mock<IDbSet<Publisher>> mockSetPublishers;
     var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
     var repository = new PublishersRepository(mockContext.Object);
     var publishers = repository.Get(1);
     // Act
     repository.Deactivate(publishers);
     // Assert
     Assert.Equal(false, publishers.Active);
 }
コード例 #15
0
        public void Verify_Deactivate_Should_SetTheActivePropertyToFalseOnTheEntity()
        {
            // Arrange
            Mock <IDbSet <Publisher> > mockSetPublishers;
            var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
            var repository  = new PublishersRepository(mockContext.Object);
            var publishers  = repository.Get(1);

            // Act
            repository.Deactivate(publishers);
            // Assert
            Assert.Equal(false, publishers.Active);
        }
コード例 #16
0
        public void Verify_Remove_Should_RemoveTheEntityFromTheContext()
        {
            // Arrange
            Mock <IDbSet <Publisher> > mockSetPublishers;
            var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
            var repository  = new PublishersRepository(mockContext.Object);
            var publishers  = repository.Get(1);

            // Act
            repository.Remove(publishers);
            // Assert
            mockSetPublishers.Verify(x => x.Remove((Publisher)publishers), Times.Once);
        }
コード例 #17
0
        private void FillPublishersListBox()
        {
            publishersListBox.Items.Clear();

            var context = new LibraryContext();

            _publishersRepository = new PublishersRepository(context);

            foreach (var publisher in _publishersRepository.GetAllPublishers())
            {
                publishersListBox.Items.Add($"{publisher.PublisherId}. {publisher.Name}");
            }
        }
コード例 #18
0
        public void Verify_Update_Should_SetTheEntityStateToModified()
        {
            // Arrange
            Mock <IDbSet <Publisher> > mockSetPublishers;
            var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
            var repository  = new PublishersRepository(mockContext.Object);
            var publishers  = repository.Get(1);

            publishers.ApiDetailUrl = "/TEST";
            // Act
            repository.Update(publishers);
            // Assert
            mockContext.Verify(x => x.SetModified(It.IsAny <object>()), Times.Once);
        }
コード例 #19
0
        public void Verify_Add_Should_AddTheEntityToTheContext()
        {
            // Arrange
            Mock <IDbSet <Publisher> > mockSetPublishers;
            var mockContext = PublishersMockingSetup.DoMockingSetupForContext(false, out mockSetPublishers);
            var repository  = new PublishersRepository(mockContext.Object);
            var publishers  = new Publisher {
                Active = true, CustomKey = "SALVATORE-RAA",
            };

            // Act
            repository.Add(publishers);
            // Assert
            mockSetPublishers.Verify(x => x.Add(publishers), Times.Once);
        }
コード例 #20
0
        public CreateEditBook()
        {
            InitializeComponent();

            var context = new LibraryContext();

            _booksRepository      = new BooksRepository(context);
            _authorsRepository    = new AuthorsRepository(context);
            _publishersRepository = new PublishersRepository(context);

            createEditButton.Text = @"Create";
            RefreshPublishersAndAuthorsList();
            RefreshGenres();
            SearchAutoComplete();
        }
コード例 #21
0
        public void Verify_Search_WithSelectStatement_Should_ReturnAListOfDynamicObjects()
        {
            // Arrange
            Mock <IDbSet <Publisher> > mockSetPublishers;
            var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers, true);
            var repository  = new PublishersRepository(mockContext.Object);
            var searchModel = new Mock <IPublisherSearchModel>();
            // Act
            var publishers = repository.Search(searchModel.Object, i => new { i.Id, MyApiDetailUrl = i.ApiDetailUrl }).ToArray();

            // Assert
            Assert.Equal(1, publishers.Length);
            Assert.Equal(2, publishers[0].Id);
            Assert.Equal("/TEST/NIVEN-LARRY", publishers[0].MyApiDetailUrl);
            // Stephen King was filtered out because he was Inactive
        }
コード例 #22
0
        public void Verify_List_Should_ReturnAListOfPublishersWithData()
        {
            // Arrange
            Mock <IDbSet <Publisher> > mockSetPublishers;
            var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
            var repository  = new PublishersRepository(mockContext.Object);
            // Act
            var publishers = repository.List.ToArray();

            // Assert
            Assert.Equal(2, publishers.Length);
            Assert.Equal(1, publishers[0].Id);
            Assert.Equal("/TEST/KING-STEPHEN", publishers[0].ApiDetailUrl);
            Assert.Equal(2, publishers[1].Id);
            Assert.Equal("/TEST/NIVEN-LARRY", publishers[1].ApiDetailUrl);
        }
コード例 #23
0
        public int GetPagesCount(Expression <Func <Publisher, bool> > filter = null)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            PublishersRepository           publishersRepository = new PublishersRepository(context);

            int pagesCount      = 0;
            int pageSize        = ApplicationConfiguration.ItemsPerPage;
            int publishersCount = 0;

            publishersCount = publishersRepository.Count(filter);
            pagesCount      = publishersCount / pageSize;
            if ((publishersCount % pageSize) > 0)
            {
                pagesCount++;
            }

            return(pagesCount);
        }
コード例 #24
0
        public void Verify_Search_WithPaging_Should_ReturnAListOfPublishersWithDataMatchingSearchParameters()
        {
            // Arrange
            Mock <IDbSet <Publisher> > mockSetPublishers;
            var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
            var repository  = new PublishersRepository(mockContext.Object);
            var searchModel = new PublisherSearchModel {
                Paging = new Paging {
                    Skip = 1, Take = 1
                }
            };
            // Act
            var publishers = repository.Search(searchModel /*.Object*/).ToArray();

            // Assert
            Assert.Equal(1, publishers.Length);
            Assert.Equal(2, publishers[0].Id);
            Assert.Equal("/TEST/NIVEN-LARRY", publishers[0].ApiDetailUrl);
            // Stephen King was filtered out because he was Skipped
        }
コード例 #25
0
        public void Verify_Search_WithModifiedSince_Should_ReturnAListOfPublishersWithDataMatchingSearchParameters()
        {
            // Arrange
            Mock <IDbSet <Publisher> > mockSetPublishers;
            var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers, true);
            var repository  = new PublishersRepository(mockContext.Object);
            var createDate  = new System.DateTime(2015, 05, 28, 10, 45, 00).AddDays(1).AddMinutes(-1);
            //var searchModel = new Mock<IPublisherSearchModel>();
            //searchModel.Setup(m => m.ModifiedSince).Returns(() => createDate);
            var searchModel = new PublisherSearchModel {
                ModifiedSince = createDate
            };
            // Act
            var publishers = repository.Search(searchModel /*.Object*/).ToArray();

            // Assert
            Assert.Equal(1, publishers.Length);
            Assert.Equal(2, publishers[0].Id);
            Assert.Equal("/TEST/NIVEN-LARRY", publishers[0].ApiDetailUrl);
            // Stephen King was filtered out because he was created before the modified since date
        }
コード例 #26
0
        public ActionResult EditPublisher(int id)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            PublishersRepository publishersRepository = new PublishersRepository(context);
            PublishersEditPublisherVM model = new PublishersEditPublisherVM();

            Publisher publisher = publishersRepository.GetByID(id);
            if (id > 0)
            {
                if (publisher == null)
                {
                    return RedirectToAction("Index", "Publishers");
                }

                model.ID = publisher.ID;
                model.Name = publisher.Name;
                model.Address = publisher.Address;
            }

            return View(model);
        }
コード例 #27
0
        public ActionResult EditPublisher(int id)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            PublishersRepository           publishersRepository = new PublishersRepository(context);
            PublishersEditPublisherVM      model = new PublishersEditPublisherVM();

            Publisher publisher = publishersRepository.GetByID(id);

            if (id > 0)
            {
                if (publisher == null)
                {
                    return(RedirectToAction("Index", "Publishers"));
                }

                model.ID      = publisher.ID;
                model.Name    = publisher.Name;
                model.Address = publisher.Address;
            }

            return(View(model));
        }
コード例 #28
0
        public ActionResult EditBook(BooksEditBookVM model)
        {
            LibraryManagementSystemContext context    = new LibraryManagementSystemContext();
            BooksRepository      booksRepository      = new BooksRepository(context);
            PublishersRepository publishersRepository = new PublishersRepository(context);

            Book book = null;

            if (!ModelState.IsValid)
            {
                model.Publishers = model.Publishers ?? new List <SelectListItem>();
                model.Publishers = SelectListHandler.Create <Publisher>(
                    publishersRepository.GetAll(), p => p.Name, p => p.ID.ToString(), model.PublisherID.ToString());
                return(View(model));
            }
            else
            {
                if (model.ID > 0)
                {
                    book = booksRepository.GetByID(model.ID);
                }
                else
                {
                    book = new Book();
                }

                book.ID            = model.ID;
                book.Title         = model.Title;
                book.PublisherID   = model.PublisherID;
                book.StockCount    = model.StockCount;
                book.DeliveryPrice = model.DeliveryPrice;
                book.DateReceived  = model.DateReceived;
                book.DatePublished = model.DatePublished;

                booksRepository.Save(book);
            }

            return(RedirectToAction("Index", "Books"));
        }
コード例 #29
0
        public ActionResult EditBook(BooksEditBookVM model)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            BooksRepository booksRepository = new BooksRepository(context);
            PublishersRepository publishersRepository = new PublishersRepository(context);

            Book book = null;
            if (!ModelState.IsValid)
            {
                model.Publishers = model.Publishers ?? new List<SelectListItem>();
                model.Publishers = SelectListHandler.Create<Publisher>(
                    publishersRepository.GetAll(), p => p.Name, p => p.ID.ToString(), model.PublisherID.ToString());
                return View(model);
            }
            else
            {
                if (model.ID > 0)
                {
                    book = booksRepository.GetByID(model.ID);
                }
                else
                {
                    book = new Book();
                }

                book.ID = model.ID;
                book.Title = model.Title;
                book.PublisherID = model.PublisherID;
                book.StockCount = model.StockCount;
                book.DeliveryPrice = model.DeliveryPrice;
                book.DateReceived = model.DateReceived;
                book.DatePublished = model.DatePublished;

                booksRepository.Save(book);
            }

            return RedirectToAction("Index", "Books");
        }
コード例 #30
0
        public ActionResult EditBook(int id)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            BooksRepository booksRepository = new BooksRepository(context);
            PublishersRepository publishersRepository = new PublishersRepository(context);
            BooksEditBookVM model = new BooksEditBookVM();

            Book book = booksRepository.GetByID(id);
            if (id > 0)
            {
                if (book == null)
                {
                    return RedirectToAction("Index", "Books");
                }

                model.ID = book.ID;
                model.Title = book.Title;
                model.PublisherID = book.Publisher.ID;
                model.StockCount = book.StockCount;
                model.DeliveryPrice = book.DeliveryPrice;
                model.DateReceived = book.DateReceived;
                model.DatePublished = book.DatePublished;
            }
            else
            {
                book = new Book();
            }

            model.Publishers = model.Publishers ?? new List<SelectListItem>();
            model.Publishers = SelectListHandler.Create<Publisher>(
                publishersRepository.GetAll(), p => p.Name, p => p.ID.ToString(), model.PublisherID.ToString());

            return View(model);
        }
 public void Verify_Get_ByID_Should_ReturnTheCorrectPublisher()
 {
     // Arrange
     Mock<IDbSet<Publisher>> mockSetPublishers;
     var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
     var repository = new PublishersRepository(mockContext.Object);
     // Act
     var publishers = repository.Get(1);
     // Assert
                 Assert.Equal("/TEST/KING-STEPHEN", publishers.ApiDetailUrl);
 }
 public void Verify_Update_Should_SetTheEntityStateToModified()
 {
     // Arrange
     Mock<IDbSet<Publisher>> mockSetPublishers;
     var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
     var repository = new PublishersRepository(mockContext.Object);
     var publishers = repository.Get(1);
     publishers.ApiDetailUrl = "/TEST";
     // Act
     repository.Update(publishers);
     // Assert
     mockContext.Verify(x => x.SetModified(It.IsAny<object>()), Times.Once);
 }
コード例 #33
0
        public int GetPagesCount(Expression<Func<Publisher, bool>> filter = null)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            PublishersRepository publishersRepository = new PublishersRepository(context);

            int pagesCount = 0;
            int pageSize = ApplicationConfiguration.ItemsPerPage;
            int publishersCount = 0;
            publishersCount = publishersRepository.Count(filter);
            pagesCount = publishersCount / pageSize;
            if ((publishersCount % pageSize) > 0)
            {
                pagesCount++;
            }

            return pagesCount;
        }
 public void Verify_Search_WithPaging_Should_ReturnAListOfPublishersWithDataMatchingSearchParameters()
 {
     // Arrange
     Mock<IDbSet<Publisher>> mockSetPublishers;
     var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
     var repository = new PublishersRepository(mockContext.Object);
     var searchModel = new PublisherSearchModel { Paging = new Paging { Skip = 1, Take = 1 } };
     // Act
     var publishers = repository.Search(searchModel/*.Object*/).ToArray();
     // Assert
     Assert.Equal(1, publishers.Length);
     Assert.Equal(2, publishers[0].Id);
     Assert.Equal("/TEST/NIVEN-LARRY", publishers[0].ApiDetailUrl);
     // Stephen King was filtered out because he was Skipped
 }
 public void Verify_Remove_Should_RemoveTheEntityFromTheContext()
 {
     // Arrange
     Mock<IDbSet<Publisher>> mockSetPublishers;
     var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
     var repository = new PublishersRepository(mockContext.Object);
     var publishers = repository.Get(1);
     // Act
     repository.Remove(publishers);
     // Assert
     mockSetPublishers.Verify(x => x.Remove((Publisher)publishers), Times.Once);
 }
 public void Verify_List_Should_ReturnAListOfPublishersWithData()
 {
     // Arrange
     Mock<IDbSet<Publisher>> mockSetPublishers;
     var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers);
     var repository = new PublishersRepository(mockContext.Object);
     // Act
     var publishers = repository.List.ToArray();
     // Assert
     Assert.Equal(2, publishers.Length);
     Assert.Equal(1, publishers[0].Id);
     Assert.Equal("/TEST/KING-STEPHEN", publishers[0].ApiDetailUrl);
     Assert.Equal(2, publishers[1].Id);
     Assert.Equal("/TEST/NIVEN-LARRY", publishers[1].ApiDetailUrl);
 }
コード例 #37
0
        public ActionResult Index(string sortOrder)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            PublishersRepository publishersRepository = new PublishersRepository(context);
            PublishersIndexVM model = new PublishersIndexVM();
            this.TryUpdateModel(model);

            model.PublishersPager = model.PublishersPager ?? new GenericPagerVM();
            model.PublishersPager.CurrentPage = model.PublishersPager.CurrentPage == 0 ? 1 : model.PublishersPager.CurrentPage;
            model.PublishersPager.Action = "Index";
            model.PublishersPager.Controller = "Publishers";
            model.PublishersPager.Prefix = "PublishersPager";
            model.PublishersPager.CurrentParameters = new Dictionary<string, object>()
            {
                { "PublisherName", model.PublisherName },
                { "PublisherAddress", model.PublisherAddress },
                { "PublishersPager.CurrentPage", model.PublishersPager.CurrentPage }
            };

            #region Sorting and Filtering
            Expression<Func<Publisher, bool>> filter = p =>
                    (string.IsNullOrEmpty(model.PublisherName) || p.Name.Contains(model.PublisherName)) &&
                    (string.IsNullOrEmpty(model.PublisherAddress) || p.Address.Contains(model.PublisherAddress));
            model.PublishersPager.PagesCount = GetPagesCount(filter);

            ViewBag.PublisherSortParam = string.IsNullOrEmpty(sortOrder) ? "publisher_desc" : "";
            ViewBag.AddressSortParam = sortOrder == "Address" ? "address_desc" : "Address";
            switch (sortOrder)
            {
                case "publisher_desc":
                    model.PublishersList = publishersRepository
                        .GetAll(model.PublishersPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderByDescending(p => p.Name))
                        .ToList();
                    break;
                case "Address":
                    model.PublishersList = publishersRepository
                        .GetAll(model.PublishersPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderBy(p => p.Address))
                        .ToList();
                    break;
                case "address_desc":
                    model.PublishersList = publishersRepository
                        .GetAll(model.PublishersPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderByDescending(p => p.Address))
                        .ToList();
                    break;
                default:
                    model.PublishersList = publishersRepository
                       .GetAll(model.PublishersPager.CurrentPage, ApplicationConfiguration.ItemsPerPage, filter, x => x.OrderBy(p => p.Name))
                       .ToList();
                    break;
            }
            #endregion

            return View(model);
        }
コード例 #38
0
        public ActionResult EditPublisher(PublishersEditPublisherVM model)
        {
            LibraryManagementSystemContext context = new LibraryManagementSystemContext();
            PublishersRepository publishersRepository = new PublishersRepository(context);

            Publisher publisher = null;
            if (!ModelState.IsValid)
            {
                return View(model);
            }
            else
            {
                if (model.ID > 0)
                {
                    publisher = publishersRepository.GetByID(model.ID);
                }
                else
                {
                    publisher = new Publisher();
                }

                publisher.ID = model.ID;
                publisher.Name = model.Name;
                publisher.Address = model.Address;

                publishersRepository.Save(publisher);
            }

            return RedirectToAction("Index", "Publishers");
        }
 public void Verify_Search_WithModifiedSince_Should_ReturnAListOfPublishersWithDataMatchingSearchParameters()
 {
     // Arrange
     Mock<IDbSet<Publisher>> mockSetPublishers;
     var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers, true);
     var repository = new PublishersRepository(mockContext.Object);
     var createDate = new System.DateTime(2015, 05, 28, 10, 45, 00).AddDays(1).AddMinutes(-1);
     //var searchModel = new Mock<IPublisherSearchModel>();
     //searchModel.Setup(m => m.ModifiedSince).Returns(() => createDate);
     var searchModel = new PublisherSearchModel { ModifiedSince = createDate };
     // Act
     var publishers = repository.Search(searchModel/*.Object*/).ToArray();
     // Assert
     Assert.Equal(1, publishers.Length);
     Assert.Equal(2, publishers[0].Id);
     Assert.Equal("/TEST/NIVEN-LARRY", publishers[0].ApiDetailUrl);
     // Stephen King was filtered out because he was created before the modified since date
 }
 public void Verify_Search_WithSelectStatement_Should_ReturnAListOfDynamicObjects()
 {
     // Arrange
     Mock<IDbSet<Publisher>> mockSetPublishers;
     var mockContext = PublishersMockingSetup.DoMockingSetupForContext(true, out mockSetPublishers, true);
     var repository = new PublishersRepository(mockContext.Object);
     var searchModel = new Mock<IPublisherSearchModel>();
     // Act
     var publishers = repository.Search(searchModel.Object, i => new { i.Id, MyApiDetailUrl = i.ApiDetailUrl }).ToArray();
     // Assert
     Assert.Equal(1, publishers.Length);
     Assert.Equal(2, publishers[0].Id);
     Assert.Equal("/TEST/NIVEN-LARRY", publishers[0].MyApiDetailUrl);
     // Stephen King was filtered out because he was Inactive
 }