internal IQueryable<Actividad> GetActividades()
 {
     using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
     {
         return dc.Actividads;
     }
 }
 internal IQueryable<Nota> GetNotas()
 {
     using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
     {
         return dc.Notas;
     }
 }
 internal IQueryable<Recurso> GetRecursos()
 {
     using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
     {
         return dc.Recurso;
     }
 }
 internal void SaveActividad(Actividad objActividad)
 {
     using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
     {
         dc.Actividads.InsertOnSubmit(objActividad);
         dc.SubmitChanges();
     }
 }
 internal void SaveNota(Nota objNota)
 {
     using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
     {
         dc.Notas.InsertOnSubmit(objNota);
         dc.SubmitChanges();
     }
 }
 internal void SaveRecurso(Recurso objRecurso)
 {
     using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
     {
         dc.Recurso.InsertOnSubmit(objRecurso);
         dc.SubmitChanges();
     }
 }
        internal void UpdateRecurso(Recurso objRecurso)
        {
            using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
            {
                Recurso _objRecurso = dc.Recurso.Single(p => p.RecursoId == objRecurso.RecursoId);

                dc.SubmitChanges();
            }
        }
        internal void UpdateActividad(Actividad objActividad)
        {
            using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
            {
                Actividad _objActividad = dc.Actividads.Single(p => p.ActividadId == objActividad.ActividadId);

                dc.SubmitChanges();
            }
        }
        internal void DeleteNota(int NotaId)
        {
            using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
            {
                Nota _objNota = dc.Notas.Single(p => p.NotaId == NotaId);

                dc.Notas.DeleteOnSubmit(_objNota);
                dc.SubmitChanges();
            }
        }
        internal void DeleteMateria(int materiaId)
        {
            using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
            {
                Materia _objMateria = dc.Materias.Single(p => p.MateriaId == materiaId);

                dc.Materias.DeleteOnSubmit(_objMateria);
                dc.SubmitChanges();
            }
        }
        internal ObservableCollection<Materia> GetMaterias()
        {
            using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
            {
                //var query = from d in dc.Materias
                //            select d;

                //return query;
                return null;
            }
        }
        internal void UpdateNota(Nota objNota)
        {
            using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
            {
                Nota _objNota = dc.Notas.Single(p => p.NotaId == objNota.NotaId);

                _objNota.ValorNota = objNota.ValorNota;
                _objNota.Porcentaje = objNota.Porcentaje;

                dc.SubmitChanges();
            }
        }
        void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
            {
                App.Context.ListaMateria.Clear();

                DataLoadOptions dl = new DataLoadOptions();
                dl.LoadWith<Materia>(p => p.Recurso);
                dl.LoadWith<Materia>(p => p.Actividads);
                dc.LoadOptions = dl;

                (from m in dc.Materias select m).ToList().ForEach(p => App.Context.ListaMateria.Add(p));
            }
        }
        internal void UpdateMateria(Materia objMateria)
        {
            using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
            {
                Materia _objMateria = dc.Materias.Single(p => p.MateriaId == objMateria.MateriaId);

                ///Propiedades a actualizar
                _objMateria.Nombre = objMateria.Nombre;
                _objMateria.Dia = objMateria.Dia;
                _objMateria.HoraDesde = objMateria.HoraDesde;
                _objMateria.HoraHasta = objMateria.HoraHasta;
                _objMateria.Aula = objMateria.Aula;

                dc.SubmitChanges();
            }
        }
        internal Materia GetMateriaById(int materiaId)
        {
            using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
            {
                DataLoadOptions dl = new DataLoadOptions();
                dl.LoadWith<Materia>(p => p.Recurso);
                dl.LoadWith<Materia>(p => p.Actividads);
                dc.LoadOptions = dl;

                var query = from m in dc.Materias
                            where m.MateriaId == materiaId
                            select m;

                return query.SingleOrDefault();
            }
        }
        void MateriaView_Loaded(object sender, RoutedEventArgs e)
        {
            using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(App.conexionString))
            {
                App.Context.ListaRecurso.Clear();
                (from r in dc.Recurso select r).ToList().ForEach(p => App.Context.ListaRecurso.Add(p));

                App.Context.ListaActividad.Clear();
                (from a in dc.Actividads select a).ToList().ForEach(p => App.Context.ListaActividad.Add(p));

                App.Context.ListaNota.Clear();
                (from n in dc.Notas select n).ToList().ForEach(p => App.Context.ListaNota.Add(p));
            }
        }
 private void CreateDataBase()
 {
     using (CalendarClassEntitiesDataContext dc = new CalendarClassEntitiesDataContext(conexionString))
     {
         if (!dc.DatabaseExists())
         {
             dc.CreateDatabase();
         }
     }
 }