Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        // 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));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        // 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));
        }