public void Url_QuandoTodasAsInformacoesEstaoPreenchidas_MontaAUrlCorretamente() { var post = new Post(); post.Data = new DateTime(2015, 01, 01); post.Titulo = "Um titulo de teste"; string urlEsperada = "2015/01/01/Um-titulo-de-teste/"; Assert.AreEqual(urlEsperada, post.Url); }
public void Url_QuandoOTituloContemAcento_MontaAUrlSemAcento() { var post = new Post(); post.Data = new DateTime(2015, 01, 01); post.Titulo = "í á ê"; string urlEsperada = "2015/01/01/i-a-e/"; Assert.AreEqual(urlEsperada, post.Url); }
public void Atualizar(Post post) { using (var conexao = new SqlConnection(StringsDeConexao.SqlServer)) { conexao.Execute(@"UPDATE Post SET Titulo = @Titulo, Conteudo = @Conteudo, Data = @Data, CaminhoDaImagemDaCapa = @CaminhoDaImagemDaCapa WHERE Url = @Url", new { post.Titulo, post.Conteudo, post.Data, post.Url, post.CaminhoDaImagemDaCapa }); foreach (var tag in post.Tags) { bool ehUmaNovaTag = conexao.Query<string>("SELECT Tag as Nome from TagsDoPost WHERE CodigoDoPost = @Codigo and Tag = @Tag", new { post.Codigo, tag }).FirstOrDefault() == null; if (ehUmaNovaTag) { conexao.Execute(@"INSERT INTO [TagsDoPost] (CodigoDoPost, Tag) values(@CodigoDoPost, @Tag)", new { @CodigoDoPost = post.Codigo, Tag = tag }); } } } }
public void Salvar(Post post) { using (var conexao = new SqlConnection(StringsDeConexao.SqlServer)) { int codigo = conexao.Query<int>(@"INSERT INTO [Post] (Titulo, Conteudo, Data, Url, CaminhoDaImagemDaCapa) values (@Titulo, @Conteudo, @Data, @Url, @CaminhoDaImagemDaCapa); SELECT CAST(SCOPE_IDENTITY() as int)", new { post.Titulo, post.Conteudo, post.Data, post.Url, post.CaminhoDaImagemDaCapa }).Single(); foreach (var tag in post.Tags) { conexao.Execute("INSERT INTO [TagsDoPost] (CodigoDoPost, Tag) values(@CodigoDoPost, @Tag)", new { @CodigoDoPost = codigo, @Tag = tag }); } } }