public CitaEN CrearCita(CitaEN citaCrear) { CitaEN citaCreada = null; string codigoNroCita = GenerarCodigoCitaNuevo(); citaCrear.NroCita = codigoNroCita; int anio = Convert.ToInt32(citaCrear.Fecha.Substring(6, 4)); int mes = Convert.ToInt32(citaCrear.Fecha.Substring(3, 2)); int dia = Convert.ToInt32(citaCrear.Fecha.Substring(0, 2)); int hhInicio; int hhFinal; int mmFinal = 0; int ssFinal = 0; DateTime horaFinal; DateTime fechaCita = Convert.ToDateTime(citaCrear.Fecha); hhInicio = citaCrear.HoraInicio.Hour; ServicioEN servicioAsociado = null; try { //Obtener hora de termino calculada ServicioService proxy = new ServicioService(); servicioAsociado = proxy.ObtenerServicio(citaCrear.Servicio.Codigo); } catch { servicioAsociado = new ServicioEN() { Codigo = citaCrear.Servicio.Codigo, TiempoEstimado = 3 }; } hhFinal = hhInicio + servicioAsociado.TiempoEstimado; horaFinal = new DateTime(anio, mes, dia, hhInicio, mmFinal, ssFinal); citaCrear.HoraFin = horaFinal.AddHours(hhFinal); //Estado citaCrear.Estado = 1; //Pendiente if (fechaCita.Date < DateTime.Now.Date) { throw new FaultException<RepetidoException>(new RepetidoException() { Codigo = 1, Mensaje = "La fecha seleccionada de la cita es incorrecta." }, new FaultReason("Validación de negocio")); } if (citaCrear.HoraInicio <= DateTime.Now.AddHours(1)) { throw new FaultException<RepetidoException>(new RepetidoException() { Codigo = 2, Mensaje = "Las citas de servicios son registradas con 1 hora de anticipacion, por favor elija otro horario disponible." }, new FaultReason("Validación de negocio")); } try { //validar si el horario ya no esta disponible bool bEstaDisponibleHorario = false; bEstaDisponibleHorario = ValidarFechaHoraCitaXTaller(citaCrear.Fecha, citaCrear.HoraInicio, citaCrear.HoraFin, citaCrear.Taller.Codigo, citaCrear.Usuario.Codigo); if (bEstaDisponibleHorario) { throw new FaultException<RepetidoException>(new RepetidoException() { Codigo = 3, Mensaje = "La fecha y hora seleccionada no esta disponible." }, new FaultReason("Validación de negocio")); } string strConectado = ConfigurationManager.AppSettings["ModoDesconectado"]; if (strConectado.Equals("0")) { throw new Exception("Modo Desconectado - Colas"); } citaCreada = CitaDAO.Crear(citaCrear); } catch (Exception ex) { citaCreada = citaCrear; string rutacola = @".\private$\ColaCitas"; if (!MessageQueue.Exists(rutacola)) { MessageQueue.Create(rutacola); } MessageQueue cola = new MessageQueue(rutacola); Message mensaje = new Message(); mensaje.Label = "Cola Usuario : " + citaCrear.Usuario.Usuario; mensaje.Body = citaCrear; cola.Send(mensaje); } return citaCreada; }
public CitaEN CrearCita(CitaEN citaCrear) { CitaEN citaCreada = null; string codigoNroCita = GenerarCodigoCitaNuevo(); citaCrear.NroCita = codigoNroCita; int anio = Convert.ToInt32(citaCrear.Fecha.Substring(6, 4)); int mes = Convert.ToInt32(citaCrear.Fecha.Substring(3, 2)); int dia = Convert.ToInt32(citaCrear.Fecha.Substring(0, 2)); int hhInicio; int hhFinal; int mmFinal = 0; int ssFinal = 0; DateTime horaFinal; DateTime fechaCita = Convert.ToDateTime(citaCrear.Fecha); hhInicio = citaCrear.HoraInicio.Hour; ServicioEN servicioAsociado = null; try { //Obtener hora de termino calculada ServicioService proxy = new ServicioService(); servicioAsociado = proxy.ObtenerServicio(citaCrear.Servicio.Codigo); } catch { servicioAsociado = new ServicioEN() { Codigo = citaCrear.Servicio.Codigo, TiempoEstimado = 3 }; } hhFinal = hhInicio + servicioAsociado.TiempoEstimado; horaFinal = new DateTime(anio, mes, dia, hhInicio, mmFinal, ssFinal); citaCrear.HoraFin = horaFinal.AddHours(hhFinal); //Estado citaCrear.Estado = 1; //Pendiente if (fechaCita.Date < DateTime.Now.Date) { throw new FaultException <RepetidoException>(new RepetidoException() { Codigo = 1, Mensaje = "La fecha seleccionada de la cita es incorrecta." }, new FaultReason("Validación de negocio")); } if (citaCrear.HoraInicio <= DateTime.Now.AddHours(1)) { throw new FaultException <RepetidoException>(new RepetidoException() { Codigo = 2, Mensaje = "Las citas de servicios son registradas con 1 hora de anticipacion, por favor elija otro horario disponible." }, new FaultReason("Validación de negocio")); } try { //validar si el horario ya no esta disponible bool bEstaDisponibleHorario = false; bEstaDisponibleHorario = ValidarFechaHoraCitaXTaller(citaCrear.Fecha, citaCrear.HoraInicio, citaCrear.HoraFin, citaCrear.Taller.Codigo, citaCrear.Usuario.Codigo); if (bEstaDisponibleHorario) { throw new FaultException <RepetidoException>(new RepetidoException() { Codigo = 3, Mensaje = "La fecha y hora seleccionada no esta disponible." }, new FaultReason("Validación de negocio")); } string strConectado = ConfigurationManager.AppSettings["ModoDesconectado"]; if (strConectado.Equals("0")) { throw new Exception("Modo Desconectado - Colas"); } citaCreada = CitaDAO.Crear(citaCrear); } catch (Exception ex) { citaCreada = citaCrear; string rutacola = @".\private$\ColaCitas"; if (!MessageQueue.Exists(rutacola)) { MessageQueue.Create(rutacola); } MessageQueue cola = new MessageQueue(rutacola); Message mensaje = new Message(); mensaje.Label = "Cola Usuario : " + citaCrear.Usuario.Usuario; mensaje.Body = citaCrear; cola.Send(mensaje); } return(citaCreada); }