// GET: Autores/Create
        public ActionResult Create()
        {
            var vm = new LivroVm();

            InicializarForm(vm);
            return(View(_form, vm));
        }
 private void InicializarForm(LivroVm vm)
 {
     vm.Editoras = EditoraBo.FiltrarTodos().Select(x => new SelectListItem()
     {
         Text = x.Nome, Value = x.Id.ToString(), Selected = vm.EditoraId == x.Id
     });
     vm.Generos = GeneroBo.FiltrarTodos().Select(x => new SelectListItem()
     {
         Text = x.Descricao, Value = x.Id.ToString(), Selected = vm.GeneroId == x.Id
     });
     vm.Autores = AutorBo.FiltrarTodos().Select(x => new SelectListItem()
     {
         Text = x.Nome, Value = x.Id.ToString(), Selected = vm.AutorId == x.Id
     });
 }
        public ActionResult Create(LivroVm vm)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    InicializarForm(vm);
                    return(View(_form, vm));
                }
                var entidade = Mapper.Map <Livro>(vm);

                LivroBo.Adicionar(entidade);

                return(RetornarMensagem());
            }
            catch (BusinessException ex)
            {
                ModelState.AddModelError("", ex.Message);
                InicializarForm(vm);
                return(View(_form, vm));
            }
        }
        public async Task <ActionResult> Edit(LivroVm vm)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    InicializarForm(vm);
                    return(View(_form, vm));
                }
                var entidade = await LivroBo.FiltrarPorIdAsync(vm.Id);

                Mapper.Map(vm, entidade);

                LivroBo.Atualizar(entidade);

                return(RetornarMensagem());
            }
            catch (BusinessException ex)
            {
                ModelState.AddModelError("", ex.Message);
                InicializarForm(vm);
                return(View(_form, vm));
            }
        }