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)); }
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)); }
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")); }
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)); }