Exemplo n.º 1
0
        public ActionResult Save(Guid?id)
        {
            BookPageModel bookPageModel = new BookPageModel();

            Response <List <BookModel> > responseBooks = JsonConvert.DeserializeObject <Response <List <BookModel> > >(UiRequestManager.Instance.Get("Book", "List"));

            bookPageModel.BookList = responseBooks.Value;

            Response <List <AuthorModel> > responseAuthor = JsonConvert.DeserializeObject <Response <List <AuthorModel> > >(UiRequestManager.Instance.Get("Author", "List"));

            bookPageModel.AuthorList = responseAuthor.Value;

            Response <List <PublisherModel> > responsePublisher = JsonConvert.DeserializeObject <Response <List <PublisherModel> > >(UiRequestManager.Instance.Get("Publisher", "List"));

            bookPageModel.PubLisherList = responsePublisher.Value;

            Response <List <TagModel> > responseTags = JsonConvert.DeserializeObject <Response <List <TagModel> > >(UiRequestManager.Instance.Get("Tag", "List"));

            bookPageModel.TagList = responseTags.Value;

            Response <List <CategoryModel> > responsecategory = JsonConvert.DeserializeObject <Response <List <CategoryModel> > >(UiRequestManager.Instance.Get("Category", "List"));

            bookPageModel.CategoryList = responsecategory.Value;

            if (Guid.Empty != id && id.HasValue)
            {
                Response <BookModel> responseSaving = JsonConvert.DeserializeObject <Response <BookModel> >(UiRequestManager.Instance.Get("Book", "GetOne", id));
                bookPageModel.bookModel = responseSaving.Value;
            }

            return(View(bookPageModel));
        }
Exemplo n.º 2
0
        public static BookPageModel GetBookPageModel(int id, int userID)
        {
            var           book   = manager.bookService.GetFullBookInfo(id);
            BookPageModel result = book.ServiceBookToModelBook();

            result.Authors  = book.Authors.Select(e => e.ToAuthorShortModel());
            result.Comments = book.Comments.Select(Comment.GetCommentModel);
            result.Contents = book.Contents.Select(Content.GetContentModel);
            result.Covers   = book.Covers.Select(e => e.ToCoverModel());
            if (!result.Covers.Any())
            {
                result.Covers = new List <CoverModel>()
                {
                    new CoverModel()
                    {
                        ID = 0, BookID = id
                    }
                };
            }
            result.Genres      = book.Genres.Select(e => e.ToGenreModel());
            result.Likes       = Like.GetLikeButtonsModel(id, userID);
            result.Lists       = book.Lists.Select(e => e.ToListModel());
            result.Reviews     = book.Review.Select(Review.GetReviewModel);
            result.Tags        = book.Tags.Select(Tag.GetTagModel);
            result.Screening   = book.Screeninigs.Select(e => e.ToScreeningModel());
            result.Collections = CollectionBook.GetBookInCollectionModel(id, userID);
            return(result);
        }
Exemplo n.º 3
0
        // GET: Books
        public ActionResult Index(string search_param, string str)
        {
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri("http://localhost:54162/");
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var apiRoute = "api/authors/books";

            if (str != null && str.Trim() != "")
            {
                if (search_param == "author")
                {
                    apiRoute = "api/authors/books/search/author/" + str;
                }
                else if (search_param == "title")
                {
                    apiRoute = "api/authors/books/search/title/" + str;
                }
                else if (search_param == "all")
                {
                    apiRoute = "api/authors/books/search/all/" + str;
                }
            }

            HttpResponseMessage response = client.GetAsync(apiRoute).Result;

            var           book = response.Content.ReadAsAsync <IEnumerable <BookModel> >().Result;
            BookPageModel bpm  = new BookPageModel();

            bpm.searchTerm = str;
            bpm.searchType = search_param;
            bpm.BookModels = book;

            return(View(bpm));
        }
Exemplo n.º 4
0
        public async Task <JsonResult> Save(BookPageModel model)
        {
            Response <BookModel> responseSaving = JsonConvert.DeserializeObject <Response <BookModel> >(UiRequestManager.Instance.Post("Book", "Save", JsonConvert.SerializeObject(model.bookModel)));

            AppFileFilterModel appFileFilterModel = new AppFileFilterModel
            {
                AppFileModuleId = responseSaving.Value.Id,
                ModuleType      = API.Models.Enum.Enum.Module.BookThumbnail,
                File            = model.Thumbnail
            };

            await AppFileUploadHelper.Instance.UploadFile(appFileFilterModel);

            appFileFilterModel.File       = model.Publication;
            appFileFilterModel.ModuleType = API.Models.Enum.Enum.Module.Publication;

            await AppFileUploadHelper.Instance.UploadFile(appFileFilterModel);

            model.bookModel.CategoryTagAssigment.BookId      = responseSaving.Value.Id;
            model.bookModel.CategoryTagAssigment.BookName    = model.bookModel.BookName;
            model.bookModel.CategoryTagAssigment.SignUrl     = "https://imageserver.kitapyurdu.com/select.php?imageid=46240&width=100&isWatermarked=true";
            model.bookModel.CategoryTagAssigment.AuthorId    = model.bookModel.AuthorId;
            model.bookModel.CategoryTagAssigment.PublisherId = model.bookModel.AuthorId;
            model.bookModel.CategoryTagAssigment.BookSummary = model.bookModel.BookSummary;


            JsonConvert.DeserializeObject <Response <CategoryTagAssigmentModel> >(UiRequestManager.Instance.Post("CategoryTagAssignment", "Save", JsonConvert.SerializeObject(model.bookModel.CategoryTagAssigment)));

            return(Json(responseSaving));
        }
Exemplo n.º 5
0
        public async Task <JsonResult> Save(BookPageModel model)
        {
            Response <BookModel> responseSaving = JsonConvert.DeserializeObject <Response <BookModel> >(UiRequestManager.Instance.Post("Book", "Save", JsonConvert.SerializeObject(model.bookModel)));


            AppFileFilterModel appFileFilterModel = new AppFileFilterModel
            {
                AppFileModuleId = responseSaving.Value.Id,
                ModuleType      = API.Models.Enum.Enum.Module.BookThumbnail,
                File            = model.Thumbnail
            };

            var thumbNail = await AppFileUploadHelper.Instance.UploadFile(appFileFilterModel);

            appFileFilterModel.File       = model.Publication;
            appFileFilterModel.ModuleType = API.Models.Enum.Enum.Module.Publication;

            await AppFileUploadHelper.Instance.UploadFile(appFileFilterModel);

            model.bookModel.CategoryTagAssigment.BookId        = responseSaving.Value.Id;
            model.bookModel.CategoryTagAssigment.BookName      = model.bookModel.BookName;
            model.bookModel.CategoryTagAssigment.BookSummary   = model.bookModel.BookSummary;
            model.bookModel.CategoryTagAssigment.SignUrl       = thumbNail.Value.SignUrl;
            model.bookModel.CategoryTagAssigment.AuthorId      = model.bookModel.AuthorId;
            model.bookModel.CategoryTagAssigment.AuthorSurname = model.bookModel.Author.Surname;
            model.bookModel.CategoryTagAssigment.PublisherId   = model.bookModel.PublisherId;
            model.bookModel.CategoryTagAssigment.BookSummary   = model.bookModel.BookSummary;

            JsonConvert.DeserializeObject <Response <CategoryTagAssigmentModel> >(UiRequestManager.Instance.Post("CategoryTagAssignment", "Save", JsonConvert.SerializeObject(model.bookModel.CategoryTagAssigment)));

            return(Json(responseSaving));
        }
        /// <summary>
        ///		Muestra el contenido de la página
        /// </summary>
        protected override void ShowPageReal(int pageIndex)
        {
            BookPageModel page = EBookContent.SearchPage(pageIndex + 1);

            if (PageShow != null && page != null)
            {
                PageShow(this, new Controllers.PageShowEventArgs(System.IO.Path.Combine(PathTarget, page.FileName).Replace("/", "\\")));
            }
        }
Exemplo n.º 7
0
        /// <summary>
        ///		Inicializa las propiedades que muestran el cómic
        /// </summary>
        protected override void InitBookView()
        {
            ComicBook comicBook = new ComicBook();
            int       pageIndex = 0;

            // Carga el archivo
            comicBook.Load(Book.FileName);
            // Crea la colección de páginas
            ComicPages = new ControlListViewModel();
            // Rellena la colección de páginas
            foreach (ComicPage page in comicBook.Pages)
            {
                BookPageModel bookPage = new BookPageModel();

                // Asigna las propiedades
                bookPage.FileName   = bookPage.FileName;
                bookPage.PageNumber = pageIndex++;
                // Añade la página del libro a la lista de página
                ComicPages.Items.Add(new PageListItemViewModel(bookPage));
            }
            // Asigna el manejador de eventos
            comicBook.ComicAction += (sender, comicArgs) =>
            {
                if (comicArgs.Action == EventComicArgs.ActionType.Uncompress)
                {
                    int index = comicArgs.Actual - 1;

                    // Asigna los nombres de archivo
                    if (index < ComicPages.Items.Count && index < comicBook.Pages.Count &&
                        ComicPages.Items[index] is PageListItemViewModel page)
                    {
                        page.Page.FileName = comicBook.Pages[index].FileName;
                        page.ThumbFileName = comicBook.Pages[index].FileName;
                    }
                    // Si ya ha terminado, ordena los nombres
                    if (index >= ComicPages.Items.Count - 1)
                    {
                        // Ordena las páginas
                        comicBook.Pages.Sort();
                        // Asigna los nombres de archivo
                        for (int indexPage = 0; indexPage < comicBook.Pages.Count; indexPage++)
                        {
                            if (ComicPages.Items[indexPage] is PageListItemViewModel pageItem)
                            {
                                pageItem.Page.FileName = comicBook.Pages[indexPage].FileName;
                                pageItem.ThumbFileName = comicBook.Pages[indexPage].FileName;
                            }
                        }
                    }
                    // Se coloca en la primera página
                    ShowPageReal(0);
                }
            };
            // Descomprime el archivo
            comicBook.Uncompress(PathTarget, true);
        }
Exemplo n.º 8
0
        public static BookPageModel  ServiceBookToModelBook(this ServiceFullBook sfb)
        {
            BookPageModel model = new BookPageModel
            {
                ID          = sfb.BookData.ID,
                Name        = sfb.BookData.Name,
                PublishDate = sfb.BookData.FirstPublication,
                AgeCategory = sfb.BookData.AgeCategory,
            };

            return(model);
        }
Exemplo n.º 9
0
        public ActionResult Index()
        {
            BookPageModel bookPageModel = new BookPageModel();
            Response <List <BookModel> > responsebooks = JsonConvert.DeserializeObject <Response <List <BookModel> > >(UiRequestManager.Instance.Get("Book", "List"));

            bookPageModel.BookList = responsebooks.Value;

            Response <List <AuthorModel> > responseauthor = JsonConvert.DeserializeObject <Response <List <AuthorModel> > >(UiRequestManager.Instance.Get("Author", "List"));

            bookPageModel.AuthorList = responseauthor.Value;

            Response <List <PublisherModel> > responsepublisher = JsonConvert.DeserializeObject <Response <List <PublisherModel> > >(UiRequestManager.Instance.Get("Publisher", "List"));

            bookPageModel.PubLisherList = responsepublisher.Value;
            return(View(bookPageModel));
        }
Exemplo n.º 10
0
 public ActionResult Details(int id)
 {
     try
     {
         int userID = 0;
         if (User.Identity.IsAuthenticated)
         {
             userID = (int) Profile["ID"];
         }
         BookPageModel model = Book.GetBookPageModel(id, userID);
         return View(model);
     }
     catch (Exception ex)
     {
         logger.Error(ex);
         return View("Error");
     }
 }
Exemplo n.º 11
0
 public static BookPageView Map(this BookPageModel model)
 {
     return(new BookPageView
     {
         BookId = model.BookId,
         Text = model.Text,
         SequenceNumber = model.SequenceNumber,
         Status = model.Status.ToDescription(),
         WriterAccountId = model.WriterAccountId,
         WriterAccountName = model.WriterAccountName,
         WriterAssignTimeStamp = model.WriterAssignTimeStamp,
         ReviewerAccountId = model.ReviewerAccountId,
         ReviewerAccountName = model.ReviewerAccountName,
         ReviewerAssignTimeStamp = model.ReviewerAssignTimeStamp,
         ChapterId = model.ChapterId,
         ChapterTitle = model.ChapterTitle
     });
 }
Exemplo n.º 12
0
        /// <summary>
        ///		Convierte las páginas
        /// </summary>
        private BookPageModelCollection ConvertPagesEPub(LibEBook.Formats.eBook.IndexItemsCollection ePubPages)
        {
            BookPageModelCollection pages = new BookPageModelCollection();

            // Añade las páginas
            foreach (LibEBook.Formats.eBook.IndexItem ePubPage in ePubPages)
            {
                BookPageModel page = new BookPageModel();

                // Asigna los datos
                page.Name     = ePubPage.Name;
                page.FileName = ePubPage.URL;
                page.Pages.AddRange(ConvertPagesEPub(ePubPage.Items));
                // Añade la página a la colección
                pages.Add(page);
            }
            // Devuelve la colección de páginas
            return(pages);
        }
Exemplo n.º 13
0
        /// <summary>
        ///		Convierte las páginas de un cómic
        /// </summary>
        private BookPageModelCollection ConvertPagesComic(BookModel book, string pathTarget)
        {
            LibComicsBooks.ComicBook comic = new LibComicsBooks.ComicBook();
            BookPageModelCollection  pages = new BookPageModelCollection();

            // Descomprime el archivo
            comic.Load(book.FileName);
            // Asigna las páginas
            for (int index = 0; index < comic.Pages.Count; index++)
            {
                BookPageModel page = new BookPageModel();

                // Asigna los datos
                page.Name     = $"Página {index + 1}";
                page.FileName = comic.Pages[index].FileName;
                // Añade la página
                pages.Add(page);
            }
            // Devuelve la colección de páginas
            return(pages);
        }
Exemplo n.º 14
0
        public BookPageView Render(BookPageModel source, int libraryId)
        {
            var result = source.Map();
            var links  = new List <LinkView>
            {
                _linkRenderer.Render(new Link
                {
                    ActionName = nameof(BookPageController.GetPageByIndex),
                    Method     = HttpMethod.Get,
                    Rel        = RelTypes.Self,
                    Parameters = new { libraryId = libraryId, bookId = source.BookId, sequenceNumber = source.SequenceNumber }
                }),
                _linkRenderer.Render(new Link
                {
                    ActionName = nameof(BookController.GetBookById),
                    Method     = HttpMethod.Get,
                    Rel        = RelTypes.Book,
                    Parameters = new { libraryId = libraryId, bookId = source.BookId }
                })
            };

            if (!string.IsNullOrWhiteSpace(source.ImageUrl) && _fileStorage.SupportsPublicLink)
            {
                links.Add(new LinkView
                {
                    Href   = _fileStorage.GetPublicUrl(source.ImageUrl),
                    Method = "GET",
                    Rel    = RelTypes.Image,
                    Accept = MimeTypes.Jpg
                });
            }
            else if (source.ImageId.HasValue)
            {
                links.Add(_linkRenderer.Render(new Link
                {
                    ActionName = nameof(FileController.GetFile),
                    Method     = HttpMethod.Get,
                    Rel        = RelTypes.Image,
                    Parameters = new { fileId = source.ImageId.Value }
                }));
            }

            if (source.PreviousPage != null)
            {
                links.Add(_linkRenderer.Render(new Link
                {
                    ActionName = nameof(BookPageController.GetPageByIndex),
                    Method     = HttpMethod.Get,
                    Rel        = RelTypes.Previous,
                    Parameters = new { libraryId = libraryId, bookId = source.PreviousPage.BookId, sequenceNumber = source.PreviousPage.SequenceNumber }
                }));
            }

            if (source.NextPage != null)
            {
                links.Add(_linkRenderer.Render(new Link
                {
                    ActionName = nameof(BookPageController.GetPageByIndex),
                    Method     = HttpMethod.Get,
                    Rel        = RelTypes.Next,
                    Parameters = new { libraryId = libraryId, bookId = source.NextPage.BookId, sequenceNumber = source.NextPage.SequenceNumber }
                }));
            }

            if (_userHelper.IsWriter(libraryId) || _userHelper.IsLibraryAdmin(libraryId) || _userHelper.IsAdmin)
            {
                links.Add(_linkRenderer.Render(new Link
                {
                    ActionName = nameof(BookPageController.UpdatePage),
                    Method     = HttpMethod.Put,
                    Rel        = RelTypes.Update,
                    Parameters = new { libraryId = libraryId, bookId = source.BookId, sequenceNumber = source.SequenceNumber }
                }));

                links.Add(_linkRenderer.Render(new Link
                {
                    ActionName = nameof(BookPageController.DeletePage),
                    Method     = HttpMethod.Delete,
                    Rel        = RelTypes.Delete,
                    Parameters = new { libraryId = libraryId, bookId = source.BookId, sequenceNumber = source.SequenceNumber }
                }));

                if (_userHelper.IsLibraryAdmin(libraryId) || _userHelper.IsAdmin)
                {
                    links.Add(_linkRenderer.Render(new Link
                    {
                        ActionName = nameof(BookPageController.AssignPage),
                        Method     = HttpMethod.Post,
                        Rel        = RelTypes.Assign,
                        Parameters = new { libraryId = libraryId, bookId = source.BookId, sequenceNumber = source.SequenceNumber }
                    }));
                }

                links.Add(_linkRenderer.Render(new Link
                {
                    ActionName = nameof(BookPageController.UpdatePageSequence),
                    Method     = HttpMethod.Post,
                    Rel        = RelTypes.PageSequence,
                    Parameters = new { libraryId = libraryId, bookId = source.BookId, sequenceNumber = source.SequenceNumber }
                }));

                if (
                    ((source.Status == Domain.Models.EditingStatus.Available ||
                      source.Status == Domain.Models.EditingStatus.Typing) &&
                     source.WriterAccountId != _userHelper.Account.Id) ||
                    ((source.Status == Domain.Models.EditingStatus.Typed ||
                      source.Status == Domain.Models.EditingStatus.InReview) &&
                     source.ReviewerAccountId != _userHelper.Account.Id)
                    )
                {
                    links.Add(_linkRenderer.Render(new Link
                    {
                        ActionName = nameof(BookPageController.AssignPageToUser),
                        Method     = HttpMethod.Post,
                        Rel        = RelTypes.AssignToMe,
                        Parameters = new { libraryId = libraryId, bookId = source.BookId, sequenceNumber = source.SequenceNumber }
                    }));
                }

                if (source.ImageId.HasValue)
                {
                    links.Add(_linkRenderer.Render(new Link
                    {
                        ActionName = nameof(BookPageController.UpdatePageImage),
                        Method     = HttpMethod.Put,
                        Rel        = RelTypes.ImageUpload,
                        Parameters = new { libraryId = libraryId, bookId = source.BookId, sequenceNumber = source.SequenceNumber }
                    }));
                    links.Add(_linkRenderer.Render(new Link
                    {
                        ActionName = nameof(BookPageController.DeletePageImage),
                        Method     = HttpMethod.Delete,
                        Rel        = RelTypes.ImageDelete,
                        Parameters = new { libraryId = libraryId, bookId = source.BookId, sequenceNumber = source.SequenceNumber }
                    }));
                    links.Add(_linkRenderer.Render(new Link
                    {
                        ActionName = nameof(BookPageController.OcrPage),
                        Method     = HttpMethod.Post,
                        Rel        = RelTypes.Ocr,
                        Parameters = new { libraryId = libraryId, bookId = source.BookId, sequenceNumber = source.SequenceNumber }
                    }));
                }
                else
                {
                    links.Add(_linkRenderer.Render(new Link
                    {
                        ActionName = nameof(BookPageController.UpdatePageImage),
                        Method     = HttpMethod.Put,
                        Rel        = RelTypes.ImageUpload,
                        Parameters = new { libraryId = libraryId, bookId = source.BookId, sequenceNumber = source.SequenceNumber }
                    }));
                }
            }

            result.Links = links;
            return(result);
        }
Exemplo n.º 15
0
 public PageNodeViewModel(IHierarchicalViewModel nodePageParent, BookPageModel page)
     : base(nodePageParent, page.Name, page, true)
 {
     Page = page;
 }
Exemplo n.º 16
0
 public BookModel(Context context)
 {
     _context     = context;
     contentModel = new BookPageModel();
 }
 public PageListItemViewModel(BookPageModel page) : base((page.PageNumber + 1).ToString(), page)
 {
     Page = page;
 }
Exemplo n.º 18
0
        public ActionResult Book(int? id, BookPageModel model)
        {
            if (id != null)
            {

                var con = new BookEntitiModel(new Uri("http://booksstore.apphb.com/BookWCFDataService.svc"));
                var res = from cont in con.Books
                          where cont.BookID == id
                          select cont;

                var firstOrDefault = res.FirstOrDefault();
                if (firstOrDefault != null)
                    foreach (var cont in con.Comments)
                    {
                        if (cont.BookID == id)
                            firstOrDefault.Comments.Add(cont);
                    }

                if (firstOrDefault != null) ViewBag.Message = firstOrDefault.Title;
                var view = new BookPageModel() { BookModel = firstOrDefault, CommentModel = new CommentModels() };
                wtf.CurrentBook = firstOrDefault;

                return View(view);
            }

            ModelState.Clear();
            if (model.CommentModel != null && !string.IsNullOrEmpty(model.CommentModel.Text))
            {

                var name = User.Identity.IsAuthenticated ? User.Identity.Name : "Анонімний";

                var newcomment = new Comment()
                                     {
                                         Added = DateTime.Now,
                                         Text = model.CommentModel.Text,
                                         Name = name,
                                         Book = wtf.CurrentBook,
                                         BookID = wtf.CurrentBook.BookID
                                     };
                var context = new BookEntitiModel(new Uri("http://booksstore.apphb.com/BookWCFDataService.svc"));

                var t = context.Comments.Where(p => p.BookID == newcomment.BookID).Where(p => p.Name == newcomment.Name).Where(p=>p.Text == newcomment.Text).ToList();

                if (t.Count==0)
                {
                    context.AddToComments(newcomment);
                    context.SaveChanges();
                }

                if (wtf.CurrentBook.Comments != null)
                {
                    wtf.CurrentBook.Comments.Clear();
                    foreach (var cont in context.Comments.Where(p => p.BookID == wtf.CurrentBook.BookID))
                    {
                        wtf.CurrentBook.Comments.Add(cont);
                    }
                }

            }
            var currentview = new BookPageModel() { BookModel = wtf.CurrentBook, CommentModel = new CommentModels() };
              //  ptr = false;
              return View(currentview);
        }