public bool ValidarFechaHoraCitaXTaller(string fecha, DateTime horaIni, DateTime horaFin, int codigoTaller, int codigoUsuario) { int cantidadIni = 0; int cantidadFin = 0; int iRes = 0; bool bResult = false; UsuarioEN usuario = new UsuarioEN() { Codigo = codigoUsuario }; TallerEN taller = new TallerEN() { Codigo = codigoTaller }; using (ISession session = NHibernateHelper.ObtenerSesion()) { cantidadIni = session .CreateCriteria(typeof(CitaEN)) .Add(Restrictions.Eq("Usuario", usuario)) .Add(Restrictions.Eq("Taller", taller)) .Add(Restrictions.Eq("Fecha", fecha)) .Add(Restrictions.Ge("HoraInicio", horaIni)) .Add(Restrictions.Eq("Estado", (int)eEstadosCita.Pendiente)) .List <CitaEN>().Count; cantidadFin = session .CreateCriteria(typeof(CitaEN)) .Add(Restrictions.Eq("Usuario", usuario)) .Add(Restrictions.Eq("Taller", taller)) .Add(Restrictions.Eq("Fecha", fecha)) .Add(Restrictions.Gt("HoraFin", horaIni)) .Add(Restrictions.Eq("Estado", (int)eEstadosCita.Pendiente)) .List <CitaEN>().Count; } iRes = cantidadIni + cantidadFin; if (iRes == 0) { bResult = false; } else { bResult = true; } return(bResult); }
public void CrearCitaTest() { CitaEN citaCreada = null; VehiculoEN vehiculoAsignado = null; TallerEN tallerAsignado = null; UsuarioEN usuarioAsignado = null; ServicioEN servicioAsignado = null; GestionCitasWS.GestionCitasServiceClient _proxy = new GestionCitasWS.GestionCitasServiceClient(); tallerAsignado = new TallerEN() { Codigo = 2 }; vehiculoAsignado = new VehiculoEN() { Codigo = 1 }; usuarioAsignado = new UsuarioEN() { Codigo = 2 }; servicioAsignado = new ServicioEN() { Codigo = 1 }; var fecha = "10/02/2016"; int anio = Convert.ToInt32(fecha.Substring(6, 4)); int mes = Convert.ToInt32(fecha.Substring(3, 2)); int dia = Convert.ToInt32(fecha.Substring(0, 2)); int hh = 13; //8 - 9 - 14 - 15 - 16 int mm = 0; int ss = 0; CitaEN citaACrear = new CitaEN() { Fecha = fecha, HoraInicio = new DateTime(anio, mes, dia, hh, mm, ss), Observacion = "Pendiente de pago", Vehiculo = vehiculoAsignado, Taller = tallerAsignado, Servicio = servicioAsignado, Usuario = usuarioAsignado }; try { citaCreada = _proxy.CrearCita(citaACrear); Assert.AreNotEqual(null, citaCreada); } catch (FaultException <RepetidoException> fe) { if (fe.Detail.Codigo == 1) { Assert.AreEqual(1, fe.Detail.Codigo); Assert.AreEqual("La fecha seleccionada de la cita es incorrecta.", fe.Detail.Mensaje); Assert.AreEqual("Validación de negocio", fe.Reason.ToString()); } else if (fe.Detail.Codigo == 2) { Assert.AreEqual(2, fe.Detail.Codigo); Assert.AreEqual("Las citas de servicios son registradas con 1 hora de anticipacion, por favor elija otro horario disponible.", fe.Detail.Mensaje); Assert.AreEqual("Validación de negocio", fe.Reason.ToString()); } else if (fe.Detail.Codigo == 3) { Assert.AreEqual(3, fe.Detail.Codigo); Assert.AreEqual("La fecha y hora seleccionada no esta disponible.", fe.Detail.Mensaje); Assert.AreEqual("Validación de negocio", fe.Reason.ToString()); } } catch (Exception ex) { throw ex; } }