protected void btnvisita_Click(object sender, EventArgs e) { int codigo = 1; string nombre = ""; DateTime fecha = DateTime.Now; int hora = 0; int minutos = 0; string telefono = ""; Propiedad p = p = (Propiedad)Session["Propiedad"]; List <Visita> Lista = null; try { Lista = FabricaLogica.GetLogicaVisita().Listar(p.Padron); } catch (ExcepcionPersonalizada ex) { mostrarMensajeError(ex.Message); return; } catch { mostrarMensajeError("Ocurrio un problema al buscar las visitas"); return; } if (txtnombrev.Text.Trim().Length != 0) { nombre = txtnombrev.Text; } else { mostrarMensajeError("Ingrese el nombre.<br>"); return; } if (txttelv.Text.Trim().Length != 0) { telefono = txttelv.Text; } else { mostrarMensajeError("Ingrese el teléfono.<br>"); return; } try { hora = Convert.ToInt32(txthora.Text); if (hora <= 0 || hora >= 23) { mostrarMensajeError("Ingrese una hora real"); return; } } catch (FormatException) { mostrarMensajeError("Ingrese la hora en números."); return; } try { minutos = Convert.ToInt32(txtminutos.Text); if (minutos < 0 || minutos >= 59) { mostrarMensajeError("Ingrese los minutos correctamente"); return; } } catch (FormatException) { mostrarMensajeError("Ingrese los minutos en números."); return; } try { fecha = Convert.ToDateTime(clnvisita.SelectedDate.Day + "/" + clnvisita.SelectedDate.Month + "/" + clnvisita.SelectedDate.Year + " " + hora + ":" + minutos); DateTime fechalimite = fecha.AddMinutes(60); DateTime actuallimite = DateTime.Now.AddMinutes(60); if (fecha.DayOfYear == DateTime.Now.DayOfYear && fechalimite < actuallimite) { mostrarMensajeError("La visita tiene que tener como mínimo una hora de anticipación."); return; } } catch { mostrarMensajeError("Tiene que ingresar día y hora."); return; } Visita unaVisita = null; try { unaVisita = new Visita(codigo, fecha, nombre, telefono, p); int i = 1; int z = 1; if (Lista.Count == 0) { FabricaLogica.GetLogicaVisita().Agregar(unaVisita); lblerror.Text = "La visita fue agregada con éxito"; txtnombrev.Text = ""; txttelv.Text = ""; txthora.Text = ""; txtminutos.Text = ""; } else { foreach (Visita unVisitante in Lista) { if (unVisitante.Telefono == unaVisita.Telefono) { i++; if (i > 2) { mostrarMensajeError("No se pueden hacer mas de dos visitas para la misma propiedad"); return; } } if (unVisitante.Telefono == unaVisita.Telefono && unVisitante.Fecha.Day == unaVisita.Fecha.Day && unVisitante.Fecha.Month == unaVisita.Fecha.Month && unVisitante.Fecha.Year == unaVisita.Fecha.Year) { z++; if (z >= 1) { mostrarMensajeError("No se pueden hacer mas de una visita por dia a la misma propiedad"); return; } } if (i > 2 && z >= 1) { mostrarMensajeError("Ésta visita no se puede realizar"); return; } else { FabricaLogica.GetLogicaVisita().Agregar(unaVisita); lblerror.Text = "La visita fue agregada con éxito"; txtnombrev.Text = ""; txttelv.Text = ""; txthora.Text = ""; txtminutos.Text = ""; } } } } catch (ExcepcionPersonalizada ex) { mostrarMensajeError(ex.Message); return; } catch { mostrarMensajeError("Ocurrió un problema al agregar la visita."); return; } }