コード例 #1
0
ファイル: EbookController.cs プロジェクト: jerryho83/tedu-cms
        public HttpResponseMessage Add(HttpRequestMessage request, EbookViewModel entityVM)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                if (!ModelState.IsValid)
                {
                    response = request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
                }
                else
                {
                    Ebook newEntity = new Ebook();

                    newEntity.UpdateEbook(entityVM);

                    ebookService.Create(newEntity);

                    ebookService.Save();

                    // Update view model
                    entityVM = Mapper.Map <Ebook, EbookViewModel>(newEntity);
                    response = request.CreateResponse <EbookViewModel>(HttpStatusCode.Created, entityVM);
                }

                return response;
            }));
        }
コード例 #2
0
        public static async Task <bool> TryShowWindowAsync(EbookViewModel ebookViewModel)
        {
            if (App.ReadingWindows.Keys.Any(rw => rw.Isbn == ebookViewModel.Isbn))
            {
                return(await App.ReadingWindows[App.ReadingWindows.Keys.First(evm => evm.Isbn == ebookViewModel.Isbn)].TryShowAsync());
            }

            AppWindow readingWindow = await AppWindow.TryCreateAsync();

            App.ReadingWindows.Add(ebookViewModel, readingWindow);
            readingWindow.Title = ebookViewModel.Title;

            readingWindow.Closed += (sender, e) =>
            {
                App.ReadingWindows.Remove(App.ReadingWindows.First(_ => _.Value == sender).Key);
            };

            Frame readingWindowContentFrame = new Frame();

            readingWindowContentFrame.Navigate(typeof(ReadingPage), ebookViewModel);

            ElementCompositionPreview.SetAppWindowContent(readingWindow, readingWindowContentFrame);

            return(await readingWindow.TryShowAsync());
        }
コード例 #3
0
ファイル: EbookController.cs プロジェクト: jerryho83/tedu-cms
        public HttpResponseMessage Update(HttpRequestMessage request, EbookViewModel entity)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                if (!ModelState.IsValid)
                {
                    response = request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
                }
                else
                {
                    var pageDb = ebookService.GetEbook(entity.ID);
                    if (pageDb == null)
                    {
                        response = request.CreateErrorResponse(HttpStatusCode.NotFound, "Invalid.");
                    }
                    else
                    {
                        pageDb.UpdateEbook(entity);
                        ebookService.Save();
                        response = request.CreateResponse <EbookViewModel>(HttpStatusCode.OK, entity);
                    }
                }

                return response;
            }));
        }
コード例 #4
0
        public async Task <ActionResult> Index()
        {
            using (var db = new EbookManagerDbContext())
            {
                var catalogRepository = new CatalogRepository(db);
                var ebooks            = await catalogRepository.LoadCatalogAsync();

                var model = new AdminCatalogModel();
                model.Ebooks = ebooks.Select(e => EbookViewModel.FromEbook(e)).ToList();

                return(View(model));
            }
        }
コード例 #5
0
        public async Task <ActionResult> Index()
        {
            using (var db = new EbookManagerDbContext())
            {
                var catalogRepository = new CatalogRepository(db);
                var ebooks            = await catalogRepository.LoadCatalogWithoutPartsAsync();

                var model = new CatalogViewModel();
                model.Ebooks.AddRange(ebooks.Select(e => EbookViewModel.FromEbook(e)));

                return(View(model));
            }
        }
コード例 #6
0
        public async Task <ActionResult> Index()
        {
            using (var db = new EbookManagerDbContext())
            {
                var userName = User.Identity.Name;

                var catalogRepository = new CatalogRepository(db);
                var ebooks            = await catalogRepository.LoadUserCatalog(userName);

                var model = new CatalogViewModel();
                model.Ebooks.AddRange(ebooks.Select(e => EbookViewModel.FromEbook(e)));

                return(View(model));
            }
        }
コード例 #7
0
        public async Task <ActionResult> DeleteBook(Guid ebookId)
        {
            using (var db = new EbookManagerDbContext())
            {
                var catalogRepository = new CatalogRepository(db);
                var ebook             = await catalogRepository.GetEbookAsync(ebookId);

                if (ebook == null)
                {
                    throw new HttpException(404, "not found");
                }

                var model = EbookViewModel.FromEbook(ebook);
                return(View(model));
            }
        }
コード例 #8
0
        public async Task <ActionResult> Details(Guid ebookId)
        {
            using (var db = new EbookManagerDbContext())
            {
                var catalogRepository = new CatalogRepository(db);
                var ebook             = await catalogRepository.GetEbookAsync(ebookId);

                var model = EbookViewModel.FromEbook(ebook);

                var userId = ClaimsPrincipal.Current.Claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value;

                ViewBag.UserOwnsBook = await catalogRepository.UserOwnsBookAsync(userId, ebookId);

                return(View(model));
            }
        }
コード例 #9
0
        public static void UpdateEbook(this Ebook ebook, EbookViewModel ebookVm)
        {
            ebook.Name         = ebookVm.Name;
            ebook.Alias        = string.IsNullOrEmpty(ebookVm.Alias) ? StringHelper.ToUnsignString(ebookVm.Name) : ebookVm.Alias;
            ebook.Image        = ebookVm.Image;
            ebook.CreatedDate  = ebookVm.CreatedDate;
            ebook.CreatedBy    = ebookVm.CreatedBy;
            ebook.Description  = ebookVm.Description;
            ebook.Content      = ebookVm.Content;
            ebook.Status       = ebookVm.Status;
            ebook.DownloadLink = ebookVm.DownloadLink;
            ebook.DisplayOrder = ebookVm.DisplayOrder;
            ebook.Status       = ebookVm.Status;

            ebook.MetaKeyword     = ebookVm.MetaKeyword;
            ebook.MetaDescription = ebookVm.MetaDescription;
        }