public ActionResult Registro(RegistroViewModel model, bool? id) //el id me dice si será o no anfitrion { if (ModelState.IsValid) { int currentYear = DateTime.Now.Year; int nacimiento = model.Nacimiento.Year; int diferencia = currentYear - nacimiento; if (diferencia >= 18) { string salt = null; while (salt == null) // si me da null, lo llamo de nuevo { salt = controlUsu.GeneraID(20); } string hash = controlUsu.Hashea(salt, model.Password); if (!controlUsu.ExisteEmail(model.Correo))//si no se repite Correo { //Construyo Usuario if (id == null) { id = false; }; Usuario u = new Usuario { Id = salt, Nombre = model.Nombre, Apellido = model.Apellido, Correo = model.Correo, Hash = hash, Anfitrion = id, Nacimiento = model.Nacimiento, Saldo = 0 }; string mensaje = u.Nombre + ", el equipo de AirBnb le da la bienvenida. " + " Gracias por registrarse con nosotros."; Mensaje m = new Mensaje { Id_Destinatario = u.Id, Id_Remitente = "0",//---> El 0 es el equipo Fecha = DateTime.Now, Mensaje1 = mensaje, Leido = false, Tipo = "bienvenida" }; controlUsu.MensajeBienvenida(m); controlUsu.GrabaUser(u); Session["usuario"] = u; Session["mensajes"] = controlUsu.GetMensajes(u.Id); //lo meto en la sesion para no mantenerlo a través de vistas y controladores. Session["VistaAnuncios"] = id; return RedirectToAction("CompletaRegistro", "Account"); } else { ViewBag.Error = "Lo sentimos, ya existe un usuario con ese correo"; } } else { ViewBag.Menor = "Lo sentimos, no puedes registrarte siendo menor de edad"; } } return View(model); }
partial void DeleteMensaje(Mensaje instance);
partial void UpdateMensaje(Mensaje instance);
partial void InsertMensaje(Mensaje instance);
private void detach_Mensajes(Mensaje entity) { this.SendPropertyChanging(); entity.Usuario = null; }
private void attach_Mensajes(Mensaje entity) { this.SendPropertyChanging(); entity.Usuario = this; }
public void MensajeBienvenida(Mensaje m) { OperacionesBDController.MandarMensaje(m); }
private void MandaNotificacionReserva(Mensaje m) { OperacionesBDController.MandarMensaje(m); }
public string Reserva(string id) //--> ID del Anuncio { if (Session["usuario"] != null) { Usuario conectado = (Usuario)Session["usuario"]; int noches = (int)Session["noches"]; Reserva r = new Models.Reserva { Id_Anuncio = Convert.ToInt16(id), Id_Huesped = conectado.Id, Noches = noches }; Anuncio a = controlUsu.GetAnuncio(r); double total = (double)(noches * a.Precio) * 1.20; r.Precio = (int)total; string idAnfitrion = getIdAnfitrion(Convert.ToInt16(id)); //id ---> Anuncio if (idAnfitrion.Equals(conectado.Id)) { return ("<script>alert('Este anuncio lo has publicado tu, Capullo!');" + "window.location.assign('http://localhost:17204/Inicio/Index');" + "</script>"); } if (GrabaReserva(r))//Compruebo si puede grabar en reservas. Si ha podido--> anuncio no existía //si no ha podido es porq el anuncio ya estaba reservado por ese Usuario. { string texto = "El usuario " + conectado.Nombre + " ha hecho una reserva para su anuncio en la localidad de " +a.Localidad+", durante " + r.Noches+" noches, por un total de: "+ r.Precio+"€";//+20% Mensaje m = new Mensaje { Fecha = DateTime.Now, Id_Destinatario = idAnfitrion, Id_Remitente = conectado.Id, Leido = false, Mensaje1 = texto, Id_Reserva = r.Id_Reserva, Tipo= "avisoreserva" //Tipos: bienvenida, avisoReserva, confirmacion, rechazo }; MandaNotificacionReserva(m); return ("<script>alert('Reserva realizada con éxito');" + "window.location.assign('http://localhost:17204/Inicio/Index');" + "</script>"); } else { return ("<script>alert('Este anuncio ya lo había reservado. Espere confirmación del Anfitrión');" + "window.location.assign('http://localhost:17204/Inicio/Index');" + "</script>"); } } else { return ("<script>alert('Inicia sesión o regístrate para reservar anuncios');" + "window.location.assign('http://localhost:17204/Inicio/Index');" + "</script>"); } }
public static void MandarMensaje(Mensaje m) { using (MiDataBaseDataContext db = new MiDataBaseDataContext()) { db.Mensajes.InsertOnSubmit(m); db.SubmitChanges(); } }
public ActionResult AccionReserva(string destinatario, string remitente, int idReserva, int idMensaje, string accion) { Usuario anfitrion = control.GetUserById(destinatario); Reserva r = GetReserva(idReserva); Usuario huesped = control.GetUserById(remitente); Anuncio a = getAnuncioById(r.Id_Anuncio); Mensaje m = null; if (accion.Equals("aceptar")) { string mensaje = huesped.Nombre + ", le comunicamos que " + anfitrion.Nombre + " ha aceptado su reserva en " + a.Localidad + " durante " + r.Noches + " noches, por la cuantia de " + r.Precio + "€. Ya puede proceder a realizar el pago de la reserva. Disfrute de su viaje!"; m = new Mensaje { Id_Destinatario = huesped.Id, Id_Remitente = anfitrion.Id,//---> El 0 es el equipo Fecha = DateTime.Now, Mensaje1 = mensaje, Leido = false, Tipo = "confirmacion", Id_Reserva = idReserva }; } else if (accion.Equals("rechazar")) { string mensaje = huesped.Nombre + ", lamentamos comunicarle que " + anfitrion.Nombre + " ha rechazado su reserva en " + a.Localidad + " durante " + r.Noches + " noches, por la cuantia de " + r.Precio + "€ :(. NO deje de reservar con nosotros."; m = new Mensaje { Id_Destinatario = huesped.Id, Id_Remitente = anfitrion.Id,//---> El 0 es el equipo Fecha = DateTime.Now, Mensaje1 = mensaje, Leido = false, Tipo = "rechazo", Id_Reserva = idReserva }; BorrarReserva(idReserva);//solo borro reserva si el anfitrión rechaza... } MandarMensaje(m); BorraMensajeByIdMensaje(idMensaje); return RedirectToAction("PerfilUsuario", "Perfil"); }
private void MandarMensaje(Mensaje m) { OperacionesBDController.MandarMensaje(m); }
public ActionResult DescartarReserva(int id, int idReserva, string remitente, string destinatario)//remitente es el Anfitrión que me ha contestado { Usuario host = control.GetUserById(remitente); Usuario huesped = control.GetUserById(destinatario); Reserva r = GetReserva(idReserva); Anuncio a = getAnuncioById(r.Id_Anuncio); string texto = host.Nombre + ", le comunicamos que " + huesped.Nombre + " ha decidido cancelar el pago de la reserva de su anuncio en " + a.Localidad; Mensaje m = new Mensaje { Id_Destinatario = host.Id, Id_Remitente = huesped.Id, Fecha = DateTime.Now, Leido = false, Mensaje1 = texto, Tipo = "bienvenida" //--> por no crearme oootro tipo }; MandarMensaje(m); BorrarReserva(idReserva); BorraMensajeByIdMensaje(id); return RedirectToAction("PerfilUsuario", "Perfil"); }
public void Pagar(PagoViewModel model) { //borro reserva una vez que haya pagado el Huesped. //guardo en tabla PagosReserva //Aumento saldo Anfitrion //mando mails de confirmacion a ambos. double comision = (double)model.Total * 0.2; int saldo = model.Total - (int)comision; PagosReserva pago = new PagosReserva { Id_Reserva = Convert.ToInt16(model.IdReserva), Id_Usuario = model.IdHuesped, Total = model.Total, Comision = (int)comision, NumTarjeta = model.NumTarjeta }; //debería generar pdf tb!!! GrabaPagos(pago); AddSaldoToHost(model.IdAnfitrion, saldo); BorrarReserva(Convert.ToInt16(model.IdReserva)); Usuario host = control.GetUserById(model.IdAnfitrion); Usuario huesped = control.GetUserById(model.IdHuesped); string texto = host.Nombre + ", le comunicamos que " + huesped.Nombre + " ya ha realizado el pago de la reserva de su anuncio, por un total de " + saldo + " euros.\nGracias por confiar en AirBnb."; Mensaje m = new Mensaje { Id_Destinatario = model.IdAnfitrion, Id_Remitente = model.IdHuesped, Fecha = DateTime.Now, Leido = false, Mensaje1 = texto, Tipo = "bienvenida" //--> por no crearme oootro tipo }; MandarMensaje(m); BorraMensajeByIdMensaje(model.IdMensaje); Reserva r = (Reserva)Session["reserva"]; Anuncio a = (Anuncio)Session["anuncio"]; string mensajeHuesped = "<h1>Le comunicamos que su pago ya ha sido realizado.</h1>\n" + "<strong><h3>Detalles Factura</h3></strong>"+ "<table>"+ "<tr><th>Titulo</th>"+ "<th>Descripcion</th>" + "<th>Localidad</th>" + "<th>Noches</th>" + "<th>Precio</th>" + "<th>Total</th>" + "<th>Anfitrion</th></tr>" + "<tr><td>"+a.Titulo+"</td>"+ "<td>" + a.Descripcion + "</td>" + "<td>" + a.Localidad + "</td>" + "<td>" + r.Noches + "</td>" + "<td>" + a.Precio + "€</td>" + "<td>" + r.Precio + "€</td>" + "<td>" + host.Nombre + "</td></tr>" + "</table>"; EmailController.ConfirmaReserva(huesped, "Factura reserva", mensajeHuesped); EmailController.ConfirmaReserva(host, "Confirmacion pago", texto ); ///Y al huesped le tendria que mandar el correo con PDF; }