}//Page_Load() protected void btnCriarMensagem_Click(object sender, EventArgs e) { if (TextBoxNovaMensagem.Text.Trim() == "") { Session["mensagem"] = "A mensagem não pode ser vazia."; return; } if (TextBoxNovaMensagem.Text.Length > Mensagem.TamanhoMaximoText) { String strTemp = "A mensagem não pode ter mais de " + Mensagem.TamanhoMaximoText.ToString() + " caracteres."; strTemp += " Quebre seu texto em mais de uma mensagem. Envie quantas mensagens quiser."; Session["mensagem"] = strTemp; return; } Mensagem novaMensagem = new Mensagem(); novaMensagem.Proposta = proposta; if (proposta.Usuario.IdUsuario == usuarioLogado.IdUsuario) { //eu sou o proponente novaMensagem.QuemPostou = Usuario.EnumQuem.PROPONENTE; } else { //eu sou o pedinte novaMensagem.QuemPostou = Usuario.EnumQuem.PEDINTE; } novaMensagem.Texto = TextBoxNovaMensagem.Text; if (DataAccess.salvarMensagem(novaMensagem) != 0) { Session["mensagem"] = "Erro ao enviar mensagem"; } else { Session["mensagem"] = "Mensagem enviada com sucesso"; if (!Request.IsLocal) LIEmail.mandarMailNovaMensagem(novaMensagem); Response.Redirect("ShowMensagens.aspx"); } }
}//populateUsuario() private static Mensagem populateMensagem(SqlDataReader dr) { /* * id_proposta quem_postou data_mensagem texto_mensagem */ Mensagem mensagemReturn = new Mensagem(); mensagemReturn.DataHoraMensagem = System.Convert.ToDateTime(dr["data_mensagem"]); mensagemReturn.Proposta = populateProposta(dr); int iTemp = System.Convert.ToInt32(dr["quem_postou"]); switch (iTemp) { case (int)Usuario.EnumQuem.PEDINTE: mensagemReturn.QuemPostou = Usuario.EnumQuem.PEDINTE; break; case (int)Usuario.EnumQuem.PROPONENTE: mensagemReturn.QuemPostou = Usuario.EnumQuem.PROPONENTE; break; }//switch mensagemReturn.Texto = System.Convert.ToString(dr["texto_mensagem"]); return mensagemReturn; }//populateMensagem()
}//aceitarProposta() /// <summary> /// Retorna: /// Sucesso: 0 /// Erro: diferente de zero /// </summary> /// <param name="mensagem"></param> /// <returns></returns> public static int salvarMensagem(Mensagem mensagem) { SqlConnection conn = null; SqlCommand cmd = null; SqlTransaction trans = null; String strSql = "INSERT INTO Mensagem (id_proposta, quem_postou, data_mensagem, texto_mensagem)"; strSql += " VALUES (" + mensagem.Proposta.IdProposta.ToString() + ","; strSql += ((int)mensagem.QuemPostou).ToString() + ",GETDATE(),'"; strSql += Utils.limpaString(mensagem.Texto) + "')"; try { conn = new SqlConnection(ConnString); conn.Open(); cmd = conn.CreateCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = strSql; trans = conn.BeginTransaction(); cmd.Transaction = trans; cmd.ExecuteNonQuery(); trans.Commit(); return 0;//sucesso } catch { trans.Rollback(); return 1;//erro } finally { if (conn != null) conn.Close(); } }//salvarMensagem()
public static int mandarMailNovaMensagem(Mensagem mensagem) { SmtpClient smtpClient = new SmtpClient(DOMAIN_NAME, 25); smtpClient.Credentials = new System.Net.NetworkCredential(CREDENTIAL, MY_ID_PASSWORD); smtpClient.UseDefaultCredentials = true; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; //smtpClient.EnableSsl = true; MailMessage mail = new MailMessage(); mail.IsBodyHtml = true; //Setting From , To and CC mail.From = new MailAddress(FROM, DISPLAY_NAME); Usuario usuarioDestinatario; if (mensagem.QuemPostou == Usuario.EnumQuem.PEDINTE) { usuarioDestinatario = mensagem.Proposta.Usuario; } else { usuarioDestinatario = mensagem.Proposta.Desejo.Usuario; } mail.To.Add(new MailAddress(usuarioDestinatario.Email, usuarioDestinatario.Apelido)); mail.Subject = "InverShop - nova mensagem"; mail.BodyEncoding = System.Text.Encoding.UTF8; mail.Body = "Prezado " + usuarioDestinatario.Apelido + ",<br><br>"; mail.Body += "Sua proposta para o desejo \"" + mensagem.Proposta.Desejo.DescricaoCurta + "\" recebeu tem uma nova mensagem.<br>"; //mail.Body += "Para visualizá-la, clique no link abaixo ou copie e cole no seu navegador.<br>"; mail.Body += "Para visualizá-la, entre no site invershop.com e clique em \"Propostas Recebidas\"<br>"; smtpClient.Send(mail); return 0;//sucesso }