Exemplo n.º 1
0
        public ActionResult _BookList(BookFilterModel model)
        {
            IEnumerable <BookModel> bookModel = null;

            FilterData filterData = new FilterData()
            {
                AuthorID     = Convert.ToInt32(model.Author),
                GenreID      = Convert.ToInt32(model.Genre),
                HouseID      = Convert.ToInt32(model.PublishingHouse),
                CreationDate = model.CreationDate != null?Convert.ToInt32(model.CreationDate) : (int?)null
            };

            using (var client = new HttpClient())
            {
                client.BaseAddress = BaseUrl;
                //HTTP GET
                var responseTask = client.PostAsJsonAsync("/api/value/getfilterbooks", filterData);
                responseTask.Wait();

                var result = responseTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsAsync <IList <BookModel> >();
                    readTask.Wait();

                    bookModel = readTask.Result;
                }
            }
            return(PartialView("_BookList", bookModel));
        }
        public async Task <IActionResult> Index(decimal?minPrice, decimal?maxPrice, long[] publisherIds, long[] categoryIds, long[] authorIds, CancellationToken cancellationToken)
        {
            var viewModel = new BooksViewModel();
            var books     = await _bookService.GetAllAsync(cancellationToken : cancellationToken);

            viewModel.Books = books;

            viewModel.MinPrice   = books.OrderBy(x => x.Price).First().Price;
            viewModel.MaxPrice   = books.OrderByDescending(x => x.Price).First().Price;
            viewModel.Categories = books.Select(x => x.Category).GroupBy(x => x.Id).Select(x => x.First()).ToList();
            viewModel.Authors    = books.Select(x => x.Author).GroupBy(x => x.Id).Select(x => x.First()).ToList();
            viewModel.Publishers = books.Select(x => x.Publisher).GroupBy(x => x.Id).Select(x => x.First()).ToList();

            if (minPrice.HasValue || maxPrice.HasValue || publisherIds.Any() || categoryIds.Any() || authorIds.Any())
            {
                var filterModel = new BookFilterModel
                {
                    MaxPrice     = maxPrice.Value,
                    MinPrice     = minPrice.Value,
                    PublisherIds = publisherIds,
                    AuthorsIds   = authorIds,
                    CategoryIds  = categoryIds,
                };
                viewModel.Books = await _filterService.FilterBooksAsync(filterModel, cancellationToken);

                viewModel.FilterModel = filterModel;
            }

            var userId = HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier);

            viewModel.OrderCount = (await _orderService.GetOrderByUserIdAsync(userId, cancellationToken))?.OrderLines?.Count() ?? 0;
            return(View(viewModel));
        }
Exemplo n.º 3
0
        public ActionResult CreateBook()
        {
            BookFilterModel filters   = new BookFilterModel();
            FiltersModel    jsonModel = new FiltersModel();

            using (var client = new HttpClient())
            {
                client.BaseAddress = BaseUrl;
                //HTTP GET
                var responseTask = client.GetAsync("/api/value/getfilters");
                responseTask.Wait();

                var result = responseTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsAsync <FiltersModel>();
                    readTask.Wait();

                    jsonModel = readTask.Result;
                }
            }
            if (jsonModel != null)
            {
                filters = new BookFilterModel
                {
                    Authors = jsonModel.Authors.ToList().Select(
                        t => new SelectListItem()
                    {
                        Value = t.ID,
                        Text  = t.Name
                    }
                        ).ToList(),

                    Genres = jsonModel.Genges.ToList().Select(
                        t => new SelectListItem()
                    {
                        Value = t.ID,
                        Text  = t.Name
                    }
                        ).ToList(),

                    PublishingHouses = jsonModel.PublishingHouses.ToList().Select(
                        t => new SelectListItem()
                    {
                        Value = t.ID,
                        Text  = t.Name
                    }
                        ).ToList()
                };
            }

            return(View("CreateBook", filters));
        }
Exemplo n.º 4
0
        public ActionResult CreateBook(BookFilterModel model)
        {
            BookModel book = new BookModel()
            {
                AuthorID         = Convert.ToInt32(model.Author),
                PublishingHomeID = Convert.ToInt32(model.PublishingHouse),
                Name             = model.Name,
                Year             = Convert.ToInt32(model.CreationDate),
                GenreID          = Convert.ToInt32(model.Genre)
            };

            using (var client = new HttpClient())
            {
                client.BaseAddress = BaseUrl;
                string url = "/api/value/createbook";

                var responseTask = client.PostAsJsonAsync(url, book);
                responseTask.Wait();
            }

            return(View("Books"));
        }
Exemplo n.º 5
0
        public ActionResult EditBook(int id)
        {
            BookFilterModel filters   = new BookFilterModel();
            FiltersModel    jsonModel = new FiltersModel();
            BookModel       book      = new BookModel();

            using (var client = new HttpClient())
            {
                client.BaseAddress = BaseUrl;

                string url          = "/api/value/getbook?id=" + id.ToString();
                var    responseTask = client.GetAsync(url);
                responseTask.Wait();

                var result = responseTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsAsync <BookModel>();
                    readTask.Wait();

                    book = readTask.Result;
                }
            }
            using (var client = new HttpClient())
            {
                client.BaseAddress = BaseUrl;
                //HTTP GET
                var responseTask = client.GetAsync("/api/value/getfilters");
                responseTask.Wait();

                var result = responseTask.Result;
                if (result.IsSuccessStatusCode)
                {
                    var readTask = result.Content.ReadAsAsync <FiltersModel>();
                    readTask.Wait();

                    jsonModel = readTask.Result;
                }
            }
            if (jsonModel != null)
            {
                filters = new BookFilterModel
                {
                    Authors = jsonModel.Authors.ToList().Select(
                        t => new SelectListItem()
                    {
                        Value    = t.ID,
                        Text     = t.Name,
                        Selected = t.Name == book.AuthorName
                    }
                        ).ToList(),

                    Genres = jsonModel.Genges.ToList().Select(
                        t => new SelectListItem()
                    {
                        Value    = t.ID,
                        Text     = t.Name,
                        Selected = t.Name == book.GenreName
                    }
                        ).ToList(),

                    PublishingHouses = jsonModel.PublishingHouses.ToList().Select(
                        t => new SelectListItem()
                    {
                        Value    = t.ID,
                        Text     = t.Name,
                        Selected = t.Name == book.PublishingHomeName
                    }
                        ).ToList()
                };
            }
            filters.ID           = book.ID.ToString();
            filters.CreationDate = book.Year.ToString();
            filters.Name         = book.Name;
            return(View("EditBook", filters));
        }