示例#1
0
        // GET: Livros/Create
        public async Task <ActionResult> Create(int AutorId = 0)
        {
            var model = new LivroDetails
            {
                AutorId = AutorId
            };

            var response = await _client.GetAutoresAsync();

            if (response.IsSuccessStatusCode)
            {
                var Autores = await response.Content.ReadAsAsync <IEnumerable <AutorViewModel> >();

                foreach (var autor in Autores)
                {
                    model.AutoresDisponiveis.Add(new SelectListItem
                    {
                        Value    = autor.id.ToString(),
                        Text     = autor.Nome,
                        Selected = autor.id == model.AutorId
                    });
                }
            }

            return(View(model));
        }
        private LivroDetails ToLivroDetails(Livros livro)
        {
            //Mapeando aobjeto
            var LivroDetails = new LivroDetails
            {
                Id     = livro.Id,
                titulo = livro.titulo,
                isbn   = livro.isbn,
                ano    = livro.ano,
            };

            List <Autor_LivroViewModel> AutoresDoLivro = new List <Autor_LivroViewModel>();

            //Lista de Objetos com pares de:  Id_livro <-> Id_Autor
            foreach (var par in livro.Autor_Livro)                       //Cada Par Livro-Autor tem um ID
            {
                //Pega no DB Obj_Livros desse Autor
                var autor = db.Autores.Single(x => x.Id == par.Id_Autor);

                //Add Livro na lista
                if (autor != null)
                {
                    AutoresDoLivro.Add(new Autor_LivroViewModel
                    {
                        Nome      = autor.Nome,
                        Sobrenome = autor.Sobrenome,
                        Email     = autor.Email
                    });
                }
            }
            ;
            LivroDetails.AutoresDoLivro = AutoresDoLivro;

            return(LivroDetails);
        }
示例#3
0
        public async Task <ActionResult> Edit(int id, LivroDetails model)
        {
            try
            {
                var response = await _client.PutLivroAsync(model);

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
示例#4
0
        public async Task <ActionResult> Delete(int id, LivroDetails model)
        {
            try
            {
                var response = await _client.DeleteLivroAsync(model.id);

                if (response.IsSuccessStatusCode)
                {
                    return(RedirectToAction("Index"));
                }

                return(RedirectToAction("Index", "Home"));
            }
            catch
            {
                return(View("Error"));
            }
        }
示例#5
0
        public async Task <ActionResult> Create(LivroDetails model)
        {
            try
            {
                //criar livro
                var response = await _client.PostLivroAsync(model);

                //var a = await response.Content.ReadAsAsync<List<int>>();
                //var create = new Autor_Livro
                //{
                //    IdAutor = model.AutorId,
                //    IdLivro = a[0]
                //};
                ////criar vinculo livro autor
                //await _client.PostAutor_LivroAsync(create);

                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View("Error"));
            }
        }
示例#6
0
 public async Task <HttpResponseMessage> PostLivroAsync(LivroDetails model)
 {
     return(await _client.PostAsJsonAsync("api/Livros", model));
 }
示例#7
0
 public async Task <HttpResponseMessage> PutLivroAsync(LivroDetails model)
 {
     return(await _client.PutAsJsonAsync($"api/Livros/{model.id}", model));
 }