public void Editar_livro_com_todos_dados() { var context = new Data.Context(); var id = context.Livros.Select(x => x.Id).FirstOrDefault(); var formDto = new LivroFormDto { AnoDePublicacao = 2010, Autor = "Christian Nagel editado", Editora = "Wrox editado", Isbn = "1119449278 editado", AutoresSecundarios = "outro autor editado", GeneroId = context.Generos.Select(x => x.Id).FirstOrDefault(), NumeroDaEdicao = 99, NumeroDePaginas = 999, QuantidadeEmEstoque = 10, Serie = "20 editado", SubTitulo = ".NetCore editado", Titulo = "Professional C# 7 editado", Id = id }; var services = new LivrosServices(context, new GeneroServices(context), new LivroBuilder()); var dto = services.Edit(formDto); Assert.IsTrue(dto.IsValid); }
private Livro EditarLivro(LivroFormDto formDto) { var livro = GetById(formDto.Id); if (livro == null) { return(null); } var genero = _generoServices.GetById(formDto.GeneroId); livro.SetAnoDePublicacao(formDto.AnoDePublicacao); livro.SetAutor(formDto.Autor); livro.SetAutoresSecundarios(formDto.AutoresSecundarios); livro.SetEditora(formDto.Editora); livro.SetGenero(genero); livro.SetIsbn(formDto.Isbn); livro.SetNumeroDaEdicao(formDto.NumeroDaEdicao); livro.SetNumeroDePaginas(formDto.NumeroDePaginas); livro.SetQuantidadeEmEstoque(formDto.QuantidadeEmEstoque); livro.SetSerie(formDto.Serie); livro.SetSubTitulo(formDto.SubTitulo); livro.SetTitulo(formDto.Titulo); livro.SetDataDeEdicao(DateTime.Now); return(livro); }
public ActionResult Novo(LivroFormViewModel formViewModel) { var dto = new LivroFormDto { AnoDePublicacao = formViewModel.AnoDePublicacao, Autor = formViewModel.Autor, AutoresSecundarios = formViewModel.AutoresSecundarios, Editora = formViewModel.Editora, GeneroId = formViewModel.GeneroId, Isbn = formViewModel.Isbn, NumeroDaEdicao = formViewModel.NumeroDaEdicao, NumeroDePaginas = formViewModel.NumeroDePaginas, QuantidadeEmEstoque = formViewModel.QuantidadeEmEstoque, Serie = formViewModel.Serie, SubTitulo = formViewModel.SubTitulo, Titulo = formViewModel.Titulo, }; var formDto = _livroServices.Save(dto); if (!formDto.IsValid) { AdicionarErrosDoValidatorNoModelState(formDto); var viewModel = SetFormViewModel(MontarViewModel(formDto)); return(View("Novo", viewModel)); } return(RedirectToAction("Index")); }
public LivroFormDto Edit(LivroFormDto formDto) { if (!Validar(formDto)) { return(formDto); } var livro = EditarLivro(formDto); if (!livro.IsValid) { formDto.AddErro("", string.Join(", ", livro.Erros)); return(formDto); } _context.SaveChanges(); return(formDto); }
public void Salvar_livro_com_dados_minimos() { var context = new Data.Context(); var id = context.Livros.Select(x => x.Id).FirstOrDefault(); var formDto = new LivroFormDto { Autor = "Christian Nagel", Editora = "Wrox", GeneroId = context.Generos.Select(x => x.Id).FirstOrDefault(), Titulo = "Professional C# 7", Id = id }; var services = new LivrosServices(context, new GeneroServices(context), new LivroBuilder()); var dto = services.Edit(formDto); Assert.IsTrue(dto.IsValid); }
public void Salvar_livro_com_ano_de_publicacao_igual_o_atual() { var context = new Data.Context(); var id = context.Livros.Select(x => x.Id).FirstOrDefault(); var formDto = new LivroFormDto { Autor = "Christian Nagel", Editora = "Wrox", GeneroId = context.Generos.Select(x => x.Id).FirstOrDefault(), Titulo = "Professional C# 7", AnoDePublicacao = DateTime.Now.Year, Id = id }; var services = new LivrosServices(context, new GeneroServices(context), new LivroBuilder()); var dto = services.Edit(formDto); Assert.IsTrue(dto.IsValid); }
private Livro CriarLivro(LivroFormDto formDto) { var genero = _generoServices.GetById(formDto.GeneroId); return(_livroBuilder. WithId(Guid.NewGuid()). WithAnoDePublicacao(formDto.AnoDePublicacao). WithAutor(formDto.Autor). WithAutoresSecundarios(formDto.AutoresSecundarios). WithEditora(formDto.Editora). WithGenero(genero). WithIsbn(formDto.Isbn). WithNumeroDaEdicao(formDto.NumeroDaEdicao). WithNumeroDePaginas(formDto.NumeroDePaginas). WithQuantidadeEmEstoque(formDto.QuantidadeEmEstoque). WithSerie(formDto.Serie). WithSubTitulo(formDto.SubTitulo). WithTitulo(formDto.Titulo). Build()); }
private LivroFormViewModel MontarViewModel(LivroFormDto dto) { return(new LivroFormViewModel { Id = dto.Id, AnoDePublicacao = dto.AnoDePublicacao, Autor = dto.Autor, AutoresSecundarios = dto.AutoresSecundarios, Editora = dto.Editora, GeneroId = dto.GeneroId, Isbn = dto.Isbn, NumeroDaEdicao = dto.NumeroDaEdicao, NumeroDePaginas = dto.NumeroDePaginas, QuantidadeEmEstoque = dto.QuantidadeEmEstoque, Serie = dto.Serie, SubTitulo = dto.SubTitulo, Titulo = dto.Titulo, Erros = dto.Erros.Select(x => x.Erro).ToList() }); }
private bool Validar(LivroFormDto formDto) { if (formDto.AnoDePublicacao.HasValue && formDto.AnoDePublicacao > DateTime.Now.Year) { formDto.AddErro(nameof(formDto.AnoDePublicacao), "O ano de publicação não pode ser maior que o ano atual."); } if (string.IsNullOrWhiteSpace(formDto.Titulo)) { formDto.AddErro(nameof(formDto.Titulo), "O título do livro deve ser informado."); } if (string.IsNullOrWhiteSpace(formDto.Autor)) { formDto.AddErro(nameof(formDto.Autor), "O autor do livro deve ser informado."); } if (string.IsNullOrWhiteSpace(formDto.Editora)) { formDto.AddErro(nameof(formDto.Editora), "A editora do livro deve ser informada."); } return(formDto.IsValid); }