public string r_observacion(observacionesDTO.observatorioss n)
        {
            try
            {
                DateTime dptBitacora;
                dptBitacora = DateTime.Now;
                observatorio ma = new observatorio();
                ma.id_estudiante = n.id_estudiante;
                ma.id_asignatura = n.id_asignatura;
                ma.id_grupo = n.id_grupo;
                ma.id_periodo = n.id_periodo;
                ma.id_profesor = n.id_profesor;
                ma.observacion = n.observacion;
                ma.fecha = dptBitacora;
                ma.tipo = n.tipo;
                ma.notificacion = n.notificacion;
                ma.acceso = n.acceso;

                bd.observatorio.Add(ma);
                bd.SaveChanges();
                /*TEST PARA ENVIO DE NOTIFICACIÓN DE REGISTRO DE OBSERVACIÓN A EMAIL*/
                matricula2 b = bd.matricula2.Where(t => t.id_estudiante == n.id_estudiante & t.id_grupo == n.id_grupo).FirstOrDefault();
                string From = "*****@*****.**";
                string To = b.personas.email.ToString();
                if (To=="")
                {
                    To = "*****@*****.**";
                }
                string Subject = "SIGAME SA: Notificación de observación académica.";
                string Body = "Se ha agregado una observación al estudiante identificado con id: " + b.personas.apellidos + " "+ b.personas.nombres+"  | Tipo: "+ n.tipo+" | La observación es: " + n.observacion +"// No responda a este mensaje. Es generado de forma automatica. // Atentamente, TEAM SIGAME.";
                SendEmail(From,To,Subject,Body);
                return "¡Se agrego la observación exitosamente y se ha enviado un email notificando al acudiente!";
            }
            catch (Exception v) { return "Se agrego la observación de forma exitosa. Pero hubo un error al enviar el email de notifiación al acudiente: " +v.Message.ToString(); }
        }
 public string m_observacionNoti(observacionesDTO.observatorioss dto, bitacorasDTO dtob)  //OK
 {
     string m = BLL.m_observacionNoti(dto);
     if (m != null)
         BLLB.r_bitacora(dtob);
     return m;
 }
 public string a_observacion(observacionesDTO.observatorioss dto, bitacorasDTO dtob) 
 {
     string m = BLL.a_observacion(dto);
     if (m != null)
         BLLB.r_bitacora(dtob);
     return m;
 }
 public string a_observacion(observacionesDTO.observatorioss n)
 {
     try
     {
         int a = Convert.ToInt16(n.referencia);
         observatorio ma = bd.observatorio.Where(
         t =>
         t.referencia == a
         ).FirstOrDefault();
         ma.acceso = n.acceso;
         bd.SaveChanges();
         return "¡Se archivó la observación exitosamente!";
     }
     catch { return null; }
 }
        public string m_observacionNoti(observacionesDTO.observatorioss n)
        {
            try
            {
                int a = Convert.ToInt16(n.referencia);
                observatorio ma = bd.observatorio.Where(
                          t =>
                          t.referencia == a
                          ).FirstOrDefault();

                ma.notificacion = n.notificacion;
                bd.SaveChanges();
                return "¡Se modificó la observación exitosamente!";
            }
            catch { return null; }
        }
 public observacionesDTO.observatorioss c_observacion(observacionesDTO.observatorioss n)
 {
     try
     {
         try
         {
             int a = Convert.ToInt16(n.referencia);
             observatorio origen = bd.observatorio.Where(t => t.referencia == a).FirstOrDefault();
             if (origen != null)
             {
                 observacionesDTO.observatorioss destino = new observacionesDTO.observatorioss();
                 Mapper.CreateMap<observatorio, observacionesDTO.observatorioss>();
                 Mapper.Map(origen, destino);
                 return destino;
             }
             else { return null; }
         }
         catch
         {
             return null;
         }
     }
     catch { return null; }
 }
 public List<observacionesDTO.observatorioss> c_obserXIdEstXGrupo(observacionesDTO.observatorioss cod)
 {
     return r.c_obserXIdEstXGrupo(cod);
 }
 public List<dtoGObservaciones> c_observaciones(observacionesDTO.observatorioss ob)
 {
     return r.c_observaciones(ob);
 }
 public string e_observacion(observacionesDTO.observatorioss ob)
 {
     return r.e_observacion(ob);
 }
 public string m_observacionNoti(observacionesDTO.observatorioss ob)
 {
     return r.m_observacionNoti(ob);
 }
 public List<observacionesDTO.observatorioss> c_obserXIdEstXGrupo(observacionesDTO.observatorioss cod)
 {
     origenl = bd.observatorio.Where(t => t.id_grupo == cod.id_grupo && t.id_estudiante== cod.id_estudiante).OrderBy(t => t.fecha).ToList();
     if (origenl.Count != 0)
     {
         AutoMapper.Mapper.CreateMap<observatorio, observacionesDTO.observatorioss>();
         AutoMapper.Mapper.Map(origenl, destinol);
         destinol = destinol.OrderBy(t => t.fecha).ToList();
         return destinol;
     }
     else
         return null;
 }
 public List<dtoGObservaciones> c_observaciones(observacionesDTO.observatorioss n)
 {
     try
     {
         List<dtoGObservaciones> d = new List<dtoGObservaciones>();
         List<observatorio> ma = bd.observatorio.Where(
                   t =>
                   t.id_estudiante == n.id_estudiante &&
                   t.id_asignatura == n.id_asignatura &&
                   t.id_grupo == n.id_grupo &&
                   t.id_periodo == n.id_periodo &&
                   t.id_profesor == n.id_profesor
                   ).ToList();
         foreach (observatorio item in ma)
         {
             dtoGObservaciones ds = new dtoGObservaciones();
             ds.nom_asignatura = item.asignatura.nombre.ToString();
             ds.id_periodo = item.id_periodo.ToString();
             ds.tipo = item.tipo.ToString();
             ds.observacion = item.observacion.ToString();
             if (item.notificacion.ToString() != null)
                 ds.notificacion = item.notificacion.ToString(); 
             else
                  ds.notificacion= "PENDIENTE...";
             ds.fecha = item.fecha.ToString();
             ds.referencia = item.referencia.ToString();
             if (item.acceso.ToString() == "ARCHIVADO") 
                 d.Remove(ds);
             else
                 d.Add(ds);
         }
         if (d.Count != 0)
         {
             d = d.OrderBy(t => t.nom_asignatura).ToList();
             return d;
         }
         else { return null; }
     }
     catch { return null; }
 }
 public string e_observacion(observacionesDTO.observatorioss n)
 {
     try
     {
         int a = Convert.ToInt16(n.referencia);
         observatorio ma = bd.observatorio.Where(
                   t =>
                   t.referencia == a
                   ).FirstOrDefault();
         if (ma != null )
         {
             bd.observatorio.Remove(ma);
             bd.SaveChanges();
             return "¡Eliminación exitosa!";
         }else{return null;}
     }catch { return null; }
 }
        public string r_observacion(observacionesDTO.observatorioss n)
        {
            try
            {
                DateTime dptBitacora;
                dptBitacora = DateTime.Now;

                observatorio ma = new observatorio();
                ma.id_estudiante = n.id_estudiante;
                ma.id_asignatura = n.id_asignatura;
                ma.id_grupo = n.id_grupo;
                ma.id_periodo = n.id_periodo;
                ma.id_profesor = n.id_profesor;

                ma.observacion = n.observacion;
                ma.fecha = dptBitacora;
                ma.tipo = n.tipo;
                ma.notificacion = n.notificacion;
                ma.acceso = n.acceso;

                bd.observatorio.Add(ma);
                bd.SaveChanges();
                return "¡Se agrego la observación exitosamente!";
            }
            catch { return null; }
        }
 public List<dtoGObservaciones> c_observaciones(observacionesDTO.observatorioss dto)
 {
     return BLL.c_observaciones(dto);
 }
 public List<observacionesDTO.observatorioss> c_obserXIdEstXGrupo(observacionesDTO.observatorioss dto, bitacorasDTO dtob)
 {
     List<observacionesDTO.observatorioss> m = BLL.c_obserXIdEstXGrupo(dto);
     if (m != null)
     {
         BLLB.r_bitacora(dtob);
     }
     return m;
 }