예제 #1
0
        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);
        }
예제 #2
0
        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;
            }
        }