private void insertarUsuarioReserva(reserva reserva, string emplid)
 {
     usuario_reserva usuarioReserva = new usuario_reserva();
     usuarioReserva.emplid = emplid;
     usuarioReserva.reserva_id = reserva.id;
     reserva.usuario_reserva.Add(usuarioReserva);
     dbSql.SaveChanges();
 }
        public void InsertarReserva(ReservaClase model)
        {
            using (var transaction = dbSql.Database.BeginTransaction())
            {
                try
                {
                    string[] clase = model.Clase.Split('-');
                    var strm = clase[0];
                    var class_nbr = clase[1];

                    foreach (string reunion in model.Reunion)
                    {
                        string[] reu = reunion.Split('-');

                        var dia = Convert.ToByte(reu[0]);
                        var horaInicio = Convert.ToInt16(reu[1]);
                        var horaFin = Convert.ToInt16(reu[2]);

                        reserva reserva = new reserva();

                        reserva.fecha_inicio = model.GetFechaInicio();
                        reserva.fecha_final = model.GetFechaFin();
                        reserva.dia = dia;
                        reserva.hora_inicial = horaInicio;
                        reserva.hora_final = horaFin;
                        reserva.tipo_reserva = "2";
                        reserva.strm = strm;
                        reserva.class_nbr = class_nbr;
                        reserva.crse_id = model.IdCurso;
                        reserva.fecha_registro = DateTime.Now;
                        reserva.curso = model.Curso;

                        dbSql.reservas.Add(reserva);
                        dbSql.SaveChanges();

                        foreach (var recursoId in model.Recurso)
                        {
                            this.insertarRecursoReserva(reserva, Convert.ToInt32(recursoId));
                        }

                        var usuariosClase = this.GetUsuariosByClase(strm, model.IdCurso, class_nbr);

                        foreach (Usuario usuario in usuariosClase)
                        {
                            this.insertarUsuarioReserva(reserva, usuario.OPRID);
                        }

                    }

                    transaction.Commit();

                    //dbSql.RegisterEvents();

                }
                catch (Exception)
                {
                    transaction.Rollback();
                    throw;
                }
            }
        }
        private void insertarRecursoReserva(reserva reserva, int resourceId)
        {
            recurso recurso = dbSql.recursoes.Find(resourceId);

            if (recurso != null)
            {
                reserva.recursoes.Add(recurso);
                dbSql.SaveChanges();
            }
            else
                throw new Exception("No se encontro el recurso de la reserva");
        }
        public void insert(ReservaGrupo model)
        {
            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    var grupo_id = Convert.ToInt32(model.Grupo);
                    var grupo = db.grupoes.Find(grupo_id);
                    var dia = Convert.ToByte(model.DiaReserva);
                    var horaInicio = Convert.ToInt16(model.HoraInicio);
                    var horaFin = Convert.ToInt16(model.HoraFin);

                    reserva reserva = new reserva();

                    reserva.fecha_inicio = model.GetFechaInicio();
                    reserva.fecha_final = model.GetFechaFin();
                    reserva.dia = dia;
                    reserva.hora_inicial = horaInicio;
                    reserva.hora_final = horaFin;
                    reserva.tipo_reserva = "3";
                    reserva.grupo_id = grupo_id;
                    reserva.fecha_registro = DateTime.Now;

                    db.reservas.Add(reserva);
                    db.SaveChanges();

                    foreach (var recursoId in model.Recurso)
                    {
                        this.insertarRecursoReserva(reserva, Convert.ToInt32(recursoId));
                    }

                    foreach (var usuario in grupo.usuarios_grupo.ToList<usuarios_grupo>())
                    {
                        this.insertarUsuarioReserva(reserva, usuario.oprid);

                    }

                    transaction.Commit();

                    //db.RegisterEvents();

                }
                catch (Exception)
                {
                    transaction.Rollback();
                    throw;
                }
            }
        }