public Respuesta <InscripcionBus> infoBusAsignado(Participante data)
        {
            Respuesta <InscripcionBus> result = new Respuesta <InscripcionBus>();

            result.codigo  = 1;
            result.mensaje = "Ocurrio un Error en Base de Datos";
            result.data    = new InscripcionBus();

            try
            {
                using (var db = new EntitiesEVE01())
                {
                    var info = (from b in db.EVE01_INSCRIPCION_BUS
                                where b.EVENTO == MvcApplication.idEvento &&
                                b.PARTICIPANTE == data.idParticipante
                                select b).SingleOrDefault();
                    if (info != null)
                    {
                        dbModel = info;
                    }
                }
                result.codigo  = 0;
                result.mensaje = "Ok";
                result.data    = this;
                return(result);
            }
            catch (Exception ex)
            {
                result.codigo       = -1;
                result.mensaje      = "Ocurrio una excepcion al tratar de consultar el No de Bus, ref; " + ex.ToString();
                result.mensajeError = ex.ToString();
                return(result);
            }
        }
 public InscripcionBus(EVE01_INSCRIPCION_BUS datos)
 {
     dbModel = new EVE01_INSCRIPCION_BUS();
 }
        public Respuesta <InscripcionBus> asignacionBus()
        {
            Respuesta <InscripcionBus> result = new Respuesta <InscripcionBus>();

            result.codigo  = 1;
            result.mensaje = "Ocurrio un Error en base de datos";
            result.data    = new InscripcionBus();

            try
            {
                using (var tr = new TransactionScope())
                {
                    using (var db = new EntitiesEVE01())
                    {
                        if (this.validaRadio == false)
                        {
                            var validaDisponibles = (from vd in db.EVE01_EVENTO_BUS
                                                     where vd.EVENTO == MvcApplication.idEvento &&
                                                     vd.BUS == this.idBus
                                                     select vd).SingleOrDefault();

                            if (validaDisponibles.DISPONIBLE != 0)
                            {
                                var tieneBus = (from tb in db.EVE01_INSCRIPCION_BUS
                                                where tb.PARTICIPANTE == this.idParticipante &&
                                                tb.EVENTO == MvcApplication.idEvento
                                                select tb).SingleOrDefault();

                                if (tieneBus != null)//EL PARTICIPANTE YA TIENE BUS ASIGNADO POR LO QUE HAY QUE MODIFICAR
                                {
                                    //SE ACTUALIZA INFORMACION DE BUSES
                                    InscripcionBus actualizaBuses = new InscripcionBus();
                                    actualizaBuses.idParticipante = this.idParticipante;
                                    actualizaBuses.idBus          = this.idBus;
                                    Respuesta <InscripcionBus> respuesta = actualizaBuses.actualizarInformacionBuses();

                                    if (respuesta.codigo != 0)
                                    {
                                        Transaction.Current.Rollback();
                                        result.codigo  = respuesta.codigo;
                                        result.mensaje = respuesta.mensaje;
                                        return(result);
                                    }
                                    //SE ELIMINA EL REGISTRO DEL BUS ASIGNADO ANTERIOR
                                    var eliminaBusAnterior = (from eba in db.EVE01_INSCRIPCION_BUS
                                                              where eba.EVENTO == tieneBus.EVENTO &&
                                                              eba.BUS == tieneBus.BUS &&
                                                              eba.PARTICIPANTE == tieneBus.PARTICIPANTE
                                                              select eba).SingleOrDefault();

                                    db.EVE01_INSCRIPCION_BUS.Remove(eliminaBusAnterior);
                                    int ce = db.SaveChanges();

                                    if (ce <= 0)
                                    {
                                        Transaction.Current.Rollback();
                                        result.codigo  = -2;
                                        result.mensaje = "No fue posible eliminar el bus anterior";
                                        return(result);
                                    }

                                    EVE01_INSCRIPCION_BUS nuevoBus = new EVE01_INSCRIPCION_BUS();
                                    nuevoBus.BUS              = this.idBus;
                                    nuevoBus.PARTICIPANTE     = this.idParticipante;
                                    nuevoBus.EVENTO           = MvcApplication.idEvento;
                                    nuevoBus.NO_BUS           = this.noBus;
                                    nuevoBus.ESTADO_REGISTRO  = "A";
                                    nuevoBus.USUARIO_CREACION = MvcApplication.UserName;
                                    nuevoBus.FECHA_CREACION   = DateTime.Now;
                                    db.EVE01_INSCRIPCION_BUS.Add(nuevoBus);
                                    int ri = db.SaveChanges();

                                    if (ri <= 0)
                                    {
                                        Transaction.Current.Rollback();
                                        result.codigo  = -2;
                                        result.mensaje = "No fue posible agregar el bus actual";
                                        return(result);
                                    }
                                }
                                else//NO TIENE BUS ASIGNA POR LO QUE SE PROCEDE A INSERTAR EL BUS
                                {
                                    //SE ACTUALIZA INFORMACION DE BUSES
                                    InscripcionBus actualizaBuses = new InscripcionBus();
                                    actualizaBuses.idParticipante = this.idParticipante;
                                    actualizaBuses.idBus          = this.idBus;
                                    Respuesta <InscripcionBus> respuesta = actualizaBuses.actualizarInformacionBuses();

                                    if (respuesta.codigo != 0)
                                    {
                                        Transaction.Current.Rollback();
                                        result.codigo  = respuesta.codigo;
                                        result.mensaje = respuesta.mensaje;
                                        return(result);
                                    }

                                    EVE01_INSCRIPCION_BUS asignaBus = new EVE01_INSCRIPCION_BUS();
                                    asignaBus.BUS              = this.idBus;
                                    asignaBus.PARTICIPANTE     = this.idParticipante;
                                    asignaBus.EVENTO           = MvcApplication.idEvento;
                                    asignaBus.NO_BUS           = this.noBus;
                                    asignaBus.ESTADO_REGISTRO  = "A";
                                    asignaBus.USUARIO_CREACION = MvcApplication.UserName;
                                    asignaBus.FECHA_CREACION   = DateTime.Now;
                                    db.EVE01_INSCRIPCION_BUS.Add(asignaBus);
                                    int rin = db.SaveChanges();

                                    if (rin <= 0)
                                    {
                                        Transaction.Current.Rollback();
                                        result.codigo  = -2;
                                        result.mensaje = "No fue posible asignar el Bus";
                                        return(result);
                                    }
                                }
                            }
                            else
                            {
                                result.codigo  = -1;
                                result.mensaje = "Ya no hay lugares disponibles, para este bus con No. " + validaDisponibles.NO_BUS;
                                return(result);
                            }
                        }
                    }
                    tr.Complete();
                }
                result.codigo  = 0;
                result.mensaje = "Ok";
                return(result);
            }
            catch (Exception ex)
            {
                result.codigo       = -1;
                result.mensaje      = "Ocurrio una excepcion al tratar de asignar bus, ref: " + ex.ToString();
                result.mensajeError = ex.ToString();
                return(result);
            }
        }