public List <object> SendMessageForReturningBook(
            GivenBooksViewModel model,
            string userId,
            string givenBookId)
        {
            var givenBook = this.context.GetBooks
                            .FirstOrDefault(gb => gb.Id == givenBookId);
            List <object> result = new List <object>();

            result.Add(this.GetGevenBooks(new GivenBooksViewModel(), userId));

            if (givenBook != null)
            {
                var book = this.context.Books.FirstOrDefault(b => b.Id == givenBook.BookId);

                var message = $"Напомняне за връщане на книгата - {book.BookName} {book.Author}!";
                this.messageService.AddMessageAtDB(givenBook.UserId, message);

                result.Add("Успершно изпратено напомняне за връщане на книга!");
            }
            else
            {
                result.Add("Не успершно изпратено напомняне за връщане на книга!");
            }

            return(result);
        }
        public GivenBooksViewModel PreparedPage(string userId)
        {
            var model       = new GivenBooksViewModel();
            var returnModel = this.GetGevenBooks(model, userId);

            return(returnModel);
        }
        public List <object> ReturningBook(
            GivenBooksViewModel model,
            string userId,
            string givenBookId)
        {
            var givenBook = this.context.GetBooks
                            .FirstOrDefault(gb => gb.Id == givenBookId);
            List <object> result = new List <object>();

            result.Add(this.GetGevenBooks(model, userId));

            if (givenBook != null)
            {
                givenBook.ReturnedOn = DateTime.UtcNow;
                this.context.SaveChanges();
                var message = $"Успершно връщане на книгата!";

                result.Add(message);
                this.messageService.AddMessageAtDB(userId, message);
                this.messageService.AddMessageAtDB(givenBook.UserId, message);
            }
            else
            {
                result.Add("Няма дадена книга на този потребител!");
            }

            return(result);
        }
Exemple #4
0
        public IActionResult DeleteGivenBook(GivenBooksViewModel model, string id)
        {
            this.StartUp();
            var returnModel = this.givenBooksService.DeletingBook(model, this.userId, id);

            return(this.View("GivenBooks", returnModel[0]));
        }
Exemple #5
0
        public IActionResult GivenBooksSearch(GivenBooksViewModel model)
        {
            this.StartUp();
            var returnModel = this.givenBooksService.GetGevenBooks(model, this.userId);

            return(this.View("GivenBooks", returnModel));
        }
Exemple #6
0
        public IActionResult ChangePageGivenBooks(GivenBooksViewModel model, int id)
        {
            this.StartUp();
            var returnModel = this.givenBooksService.ChangeActivePage(model, this.userId, id);

            return(this.View("GivenBooks", returnModel));
        }
        public List <object> SendMessageForReturningBook(
            GivenBooksViewModel model,
            string userId,
            string givenBookId)
        {
            var givenBook = this.context.GetBooks
                            .FirstOrDefault(gb => gb.Id == givenBookId);
            List <object> result = new List <object>();

            result.Add(this.GetGevenBooks(new GivenBooksViewModel(), userId));

            if (givenBook != null)
            {
                var book = this.context.Books.FirstOrDefault(b => b.Id == givenBook.BookId);

                var message = $"Моля върнете книгата - {book.Title} {book.Author} с каталожен номер {book.CatalogNumber}!";
                this.notificationService.AddNotificationAtDB(givenBook.UserId, message);

                result.Add("Успешно изпратено съобщение за връщане на книга!");
            }
            else
            {
                result.Add("Неуспешно изпратено съобщение за връщане на книга!");
            }

            return(result);
        }
        public List <object> ReturningBook(
            GivenBooksViewModel model,
            string userId,
            string givenBookId)
        {
            var givenBook = this.context.GetBooks
                            .FirstOrDefault(gb => gb.Id == givenBookId);
            List <object> result = new List <object>();

            result.Add(this.GetGevenBooks(model, userId));

            if (givenBook != null)
            {
                givenBook.ReturnedOn = DateTime.UtcNow;
                this.context.SaveChanges();
                var user    = this.context.Users.FirstOrDefault(u => u.Id == userId);
                var message = $"Успеешно върната книга от - {user.FirstName} {user.LastName} - {user.Email}!";

                result.Add(message);
                this.notificationService.AddNotificationAtDB(userId, message);
                this.notificationService.AddNotificationAtDB(givenBook.UserId, message);
            }
            else
            {
                result.Add("Избраната книга за връщане не е намерена!");
            }

            return(result);
        }
 public GivenBooksViewModel ChangeActivePage(
     GivenBooksViewModel model,
     string userId,
     int newPage)
 {
     model.CurrentPage = newPage;
     return(this.GetGevenBooks(model, userId));
 }
Exemple #10
0
        public IActionResult SendMessageForReturningBook(GivenBooksViewModel model, string id)
        {
            this.StartUp();
            var returnModel = this.givenBooksService.SendMessageForReturningBook(model, this.userId, id);

            this.ViewData["message"] = returnModel[1];
            return(this.View("GivenBooks", returnModel[0]));
        }
        public IActionResult ReturningGivenBook(GivenBooksViewModel model, string id)
        {
            var startUp = this.StartUp();

            if (startUp != null)
            {
                return(startUp);
            }

            var returnModel = this.givenBooksService.ReturningBook(model, this.userId, id);

            this.ViewData["message"] = returnModel[1];
            return(this.View("GivenBooks", returnModel[0]));
        }
        public List <object> DeletingBook(GivenBooksViewModel model, string userId, string givenBookId)
        {
            var givenBook = this.context.GetBooks
                            .FirstOrDefault(gb => gb.Id == givenBookId);
            List <object> result = new List <object>();

            result.Add(this.GetGevenBooks(model, userId));

            if (givenBook != null)
            {
                givenBook.DeletedOn  = DateTime.UtcNow;
                givenBook.ReturnedOn = DateTime.UtcNow;

                this.context.SaveChanges();

                result.Add("Успершно изтриване на взета книгата!");
            }
            else
            {
                result.Add("Няма дадена книга на този потребител!");
            }

            return(result);
        }
        public GivenBooksViewModel GetGevenBooks(GivenBooksViewModel model, string userId)
        {
            var firstName        = model.SearchGivenBook.FirstName;
            var lastName         = model.SearchGivenBook.LastName;
            var email            = model.SearchGivenBook.Email;
            var bookName         = model.SearchGivenBook.BookName;
            var author           = model.SearchGivenBook.Author;
            var genreId          = model.SearchGivenBook.GenreId;
            var sortMethodId     = model.SortMethodId;
            var countBooksOfPage = model.CountBooksOfPage;
            var currentPage      = model.CurrentPage;
            var catalogNumber    = model.SearchGivenBook.CatalogNumber;

            var givenBooks = this.context.GetBooks
                             .Where(gb =>
                                    gb.DeletedOn == null &&
                                    gb.Book.UserId == userId)
                             .Select(gb => new GivenBookViewModel()
            {
                Author        = gb.Book.Author,
                Id            = gb.Id,
                BookName      = gb.Book.BookName,
                GenreName     = gb.Book.Genre.Name,
                GenreId       = gb.Book.GenreId,
                CatalogNumber = gb.Book.CatalogNumber,
                FirstName     = gb.User.FirstName,
                LastName      = gb.User.LastName,
                UserName      = gb.User.UserName,

                ReturnedOn = gb.ReturnedOn,
                CreatedOn  = gb.CreatedOn,
            });

            givenBooks = this.SelectBooks(
                bookName,
                author,
                genreId,
                firstName,
                lastName,
                email,
                catalogNumber,
                givenBooks);

            givenBooks = this.SortBooks(sortMethodId, givenBooks);

            var genres = this.genreService.GetAllGenres()
                         .OrderByDescending(x => x.Name).ToList();

            var genre = new GenreListViewModel()
            {
                Id   = null,
                Name = "Изберете жанр",
            };

            genres.Add(genre);
            genres.Reverse();
            int maxCountPage = givenBooks.Count() / countBooksOfPage;

            if (givenBooks.Count() % countBooksOfPage != 0)
            {
                maxCountPage++;
            }

            var viewBook = givenBooks.Skip((currentPage - 1) * countBooksOfPage)
                           .Take(countBooksOfPage);

            var searchGivenBook = new GivenBookViewModel()
            {
                CatalogNumber = catalogNumber,
                Author        = author,
                BookName      = bookName,
                GenreId       = genreId,
            };

            var returnModel = new GivenBooksViewModel()
            {
                Books            = viewBook,
                SearchGivenBook  = searchGivenBook,
                SortMethodId     = sortMethodId,
                Genres           = genres,
                MaxCountPage     = maxCountPage,
                CurrentPage      = currentPage,
                CountBooksOfPage = countBooksOfPage,
            };

            return(returnModel);
        }