public async Task <ActionResult> Create(SageViewModel sageViewModel, HttpPostedFileBase photo1) { if (ModelState.IsValid) { if (photo1 != null) { sageViewModel.Sage.Photo = new byte[photo1.ContentLength]; photo1.InputStream.Read(sageViewModel.Sage.Photo, 0, photo1.ContentLength); } var selectedBooks = new HashSet <int>(sageViewModel.SelectedBooks); var books = await _uow.BookRepository.GetAllAsync(filter : x => selectedBooks.Contains(x.IdBook), disableTracking : false); sageViewModel.Sage.Books = books.ToList(); await _uow.SageRepository.CreateAsync(sageViewModel.Sage); await _uow.SaveAsync(); return(RedirectToAction("Index")); } return(View(sageViewModel)); }
// GET: Sages/Edit/5 public async Task <ActionResult> Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var sageViewModel = new SageViewModel { Sage = await _uow.SageRepository .GetFirstOrDefaultAsync( x => x.IdSage.Equals(id.Value), null, q => q.Include(x => x.Books), disableTracking : false) }; if (sageViewModel.Sage == null) { return(HttpNotFound()); } var books = await _uow.BookRepository.GetAllAsync(disableTracking : false); sageViewModel.AllBooks = books .Select(x => new SelectListItem { Value = x.IdBook.ToString(), Text = x.Name }) .ToList(); return(View(sageViewModel)); }
// GET: Sages/Edit/5 public async Task <ActionResult> Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } // Book book = await db.Books.FindAsync(id); var sageViewModel = new SageViewModel() { Sage = await _sageApiService.GetAsync(id.Value) }; if (sageViewModel.Sage == null) { return(HttpNotFound()); } var books = await _bookApiService.GetAsync(); sageViewModel.AllBooks = books .Select(x => new SelectListItem { Value = x.IdBook.ToString(), Text = x.Name }) .ToList(); return(View(sageViewModel)); }
public async Task <ActionResult> Edit(SageViewModel sageViewModel, HttpPostedFileBase photo1) { if (ModelState.IsValid) { if (photo1 != null) { sageViewModel.Sage.Photo = new byte[photo1.ContentLength]; photo1.InputStream.Read(sageViewModel.Sage.Photo, 0, photo1.ContentLength); } var sageToUpdate = await _uow.SageRepository .GetFirstOrDefaultAsync( x => x.IdSage.Equals(sageViewModel.Sage.IdSage), null, q => q.Include(x => x.Books), disableTracking : false); if (sageToUpdate == null) { return(HttpNotFound()); } sageToUpdate.Name = sageViewModel.Sage.Name; sageToUpdate.Photo = sageViewModel.Sage.Photo; sageToUpdate.Age = sageViewModel.Sage.Age; sageToUpdate.City = sageViewModel.Sage.City; var selectedBooks = new HashSet <int>(sageViewModel.SelectedBooks); var sageBooks = new HashSet <int>(sageToUpdate.Books.Select(c => c.IdBook)); var books = await _uow.BookRepository.GetAllAsync(disableTracking : false); foreach (var book in books) { if (selectedBooks.Contains(book.IdBook)) { if (!sageBooks.Contains(book.IdBook)) { sageToUpdate.Books.Add(book); } } else { if (sageBooks.Contains(book.IdBook)) { sageToUpdate.Books.Remove(book); } } } await _uow.SageRepository.UpdateAsync(sageToUpdate); await _uow.SaveAsync(); return(RedirectToAction("Index")); } return(View(sageViewModel)); }
public async Task <IActionResult> Put(int id, [FromBody] SageViewModel sageView) { if (ModelState.IsValid) { var sage = _mapper.Map <SageModel>(sageView); await _sageService.EditSage(sage); return(Ok(sage)); } return(BadRequest(ModelState)); }
// GET: Sages/Create public async Task <ActionResult> Create() { var sageViewModel = new SageViewModel(); var sages = await _uow.SageRepository.GetAllAsync(); sageViewModel.AllBooks = sages .Select(x => new SelectListItem { Value = x.IdSage.ToString(), Text = x.Name }) .ToList(); return(View(sageViewModel)); }
// GET: Sages/Create public async Task <ActionResult> Create() { var sageViewModel = new SageViewModel(); var books = await _bookApiService.GetAsync(); sageViewModel.AllBooks = books .Select(x => new SelectListItem { Value = x.IdBook.ToString(), Text = x.Name }) .ToList(); return(View(sageViewModel)); }
public async Task <ActionResult> Create(SageViewModel sageViewModel, HttpPostedFileBase photo1) { if (ModelState.IsValid) { if (photo1 != null) { sageViewModel.Sage.Photo = new byte[photo1.ContentLength]; photo1.InputStream.Read(sageViewModel.Sage.Photo, 0, photo1.ContentLength); } var sage = new SageCreateViewModel { Sage = sageViewModel.Sage, SelectedBooks = sageViewModel.SelectedBooks }; await this._sageApiService.PostAsync(sage); return(RedirectToAction("Index")); } return(View(sageViewModel)); }