public ActionResult Create([Bind(Include = "LugarID,NombreLugar,AbrevLugar,DireccionHabitual")] Lugar lugar) { if (ModelState.IsValid) { db.Lugares.Add(lugar); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(lugar)); }
public ActionResult Create([Bind(Include = "TipoDocumentoID,Descripcion,Abreviacion,PermiteEnviosOVAL,TipoDocumentoOVAL")] TipoDocumento tipoDocumento) { if (ModelState.IsValid) { db.TiposDocumento.Add(tipoDocumento); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(tipoDocumento)); }
public ActionResult Create([Bind(Include = "NotificacionVencimientoID,MailNotificacionVencimiento,RegistroCapacitacionID")] NotificacionVencimiento notificacionVencimiento) { if (ModelState.IsValid) { db.NotificacionVencimientos.Add(notificacionVencimiento); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.RegistroCapacitacionID = new SelectList(db.RegistroCapacitacion, "RegistroCapacitacionID", "UsuarioModificacion", notificacionVencimiento.RegistroCapacitacionID); return(View(notificacionVencimiento)); }
public void Add(T entity) { try { _context.Set <T>().Add(entity); _context.SaveChanges(); } catch (Exception) { throw; } }
public bool Add(LeccionPorCurso model) { try { _cursosDbContext.Add(model); _cursosDbContext.SaveChanges(); } catch (Exception) { return(false); } return(true); }
public bool Add(Categoria model) { try { _cursosDbContext.Add(model); _cursosDbContext.SaveChanges(); } catch (Exception) { return(false); } return(true); }
public ActionResult Create([Bind(Include = "InstructorID,Nombre,Apellido,Documento,FechaNacimiento,Domicilio,Telefono,Activo")] Instructor instructor) { if (ModelState.IsValid) { instructor.SetearAtributosControl(); db.Instructores.Add(instructor); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(instructor)); }
public ActionResult Create([Bind(Include = "CursoID,Descripcion,DescripcionEnIngles,Costo,Horas,Modulo,Vigencia,EvaluacionConNota,PuntajeMinimo,PuntajeMaximo,ColorDeFondo,RequiereAutorizacion,TieneMinimoAsistentes,MinimoAsistentes,TieneMaximoAsistentes,MaximoAsistentes,TieneCierreIncripcion,HorasCierreInscripcion,PermiteInscripcionesExternas,PermiteEnviosOVAL,PuntoServicioId,RequiereDocumentacionAdicionalInscripcion,DocumentacionAdicionalIdentificador,RequiereDocumentacionAdicionalInscripcionObligatoria")] Curso curso) { if (ModelState.IsValid) { if (!curso.PermiteEnviosOVAL) { curso.PuntoServicioId = null; } db.Cursos.Add(curso); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(curso)); }
public void Borrar(int inscripcionId) { using (var transaction = _dbContext.Database.BeginTransaction()) { try { var inscripcionInDb = _dbContext .Inscripciones .SingleOrDefault(i => i.InscripcionId == inscripcionId); if (inscripcionInDb != null) { _dbContext.Entry(inscripcionInDb).State = EntityState.Deleted; var cursoInDb = _dbContext.Cursos .SingleOrDefault(c => c.CursoId == inscripcionInDb.CursoId); if (cursoInDb != null) { cursoInDb.Vacantes++; _dbContext.Entry(cursoInDb).State = EntityState.Modified; _dbContext.SaveChanges(); } transaction.Commit(); } } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message); } } }
public ActionResult Create([Bind(Include = "EmpresaID,NombreFantasia,Domicilio,RazonSocial,RUT,DepartamentoID,Localidad,CodigoPostal,Email,Telefono")] Empresa empresa) { if (ModelState.IsValid) { empresa.SetearAtributosControl(); db.Empresas.Add(empresa); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.DepartamentoID = new SelectList(db.Departamentos, "DepartamentoID", "Nombre"); return(View(empresa)); }
//Las notificaciones asociadas a los registros no se crean al crear el registro //Antes de listar en pantalla los vencimientos, se le asocian la notificaciones a los registros que no la tienen private void ActualizarNotificacionesVencimientos() { using (CursosDbContext db = new CursosDbContext()) { var rcSinNotificacioneAsociadas = db.RegistroCapacitacion.Where(r => !db.NotificacionVencimientos.Any(n => n.RegistroCapacitacionID == r.RegistroCapacitacionID)).ToList(); if (rcSinNotificacioneAsociadas.Count > 0) { foreach (var r in rcSinNotificacioneAsociadas) { var n = new NotificacionVencimiento { Estado = EstadoNotificacionVencimiento.NotificacionPendiente, RegistroCapacitacion = r, Fecha = DateTime.Now }; db.NotificacionVencimientos.Add(n); } db.SaveChanges(); } } }
public bool CambiarExtensionFotoAJPG(Capacitado c, CursosDbContext dbContext) { //var capacitado = db.Capacitados.Where(c => c.CapacitadoID == CapacitadoID).; var pathArchivo = dbContext.PathArchivos.Find(c.PathArchivoID); if (c.PathArchivo != null && c.PathArchivo.NombreArchivo.ToLower().Contains(".jpeg")) { string carpetaArchivo = PathArchivoHelper.GetInstance().ObtenerCarpetaFotoCapacitado(c.CapacitadoID); string pathDirectorio = Path.Combine(HttpContext.Current.Server.MapPath("~/Images/FotosCapacitados/"), carpetaArchivo); var pathArchivoImagenAnterior = Path.Combine(pathDirectorio, c.PathArchivo.NombreArchivo); var pathArchivoImagenNuevo = Path.Combine(pathDirectorio, c.PathArchivo.NombreArchivo.ToLower().Replace(".jpeg", ".jpg")); System.IO.File.Move(pathArchivoImagenAnterior, pathArchivoImagenNuevo); string nuevoNombreArchivo = c.PathArchivo.NombreArchivo.ToLower().Replace(".jpeg", ".jpg"); //c.PathArchivo.NombreArchivo = nuevoNombreArchivo; pathArchivo.NombreArchivo = nuevoNombreArchivo; dbContext.SaveChanges(); } else return false; return true; }
public void ActualizarNotificacionesVencimientos() { var registrosPorVencer = db.NotificacionVencimientos.Where(r => r.Estado == EstadoNotificacionVencimiento.NotificacionPendiente); //registrosPorVencer = registrosPorVencer.Where(r => r.NotificarRegistroPorVencer); //var registrosPorVencer = db.RegistroCapacitacion.Where(r => r.FechaVencimiento >= fechaInicioControlVencimientos && // r.FechaVencimiento >= r.FechaVencimiento.AddDays(diasAnticipacionAviso)).ToList(); //List<RegistroCapacitacion> registrosPorVencer = new List<RegistroCapacitacion>(); foreach (var registroPorVencer in registrosPorVencer.ToList()) { NotificacionVencimiento notificacion = new NotificacionVencimiento { RegistroCapacitacion = registroPorVencer.RegistroCapacitacion, MailNotificacionVencimiento = string.Empty, Estado = EstadoNotificacionVencimiento.NotificacionPendiente }; db.NotificacionVencimientos.Add(notificacion); } //si se agregó alguna notificación de vencimiento if (registrosPorVencer.ToList().Count > 0) { db.SaveChanges(); } /* * var registrosPorVencer = db.RegistroCapacitacion.AsQueryable(); * * registrosPorVencer = registrosPorVencer.Where(r => r.NotificarRegistroPorVencer); * * //var registrosPorVencer = db.RegistroCapacitacion.Where(r => r.FechaVencimiento >= fechaInicioControlVencimientos && * // r.FechaVencimiento >= r.FechaVencimiento.AddDays(diasAnticipacionAviso)).ToList(); * * //List<RegistroCapacitacion> registrosPorVencer = new List<RegistroCapacitacion>(); * * foreach (var registroPorVencer in registrosPorVencer.ToList()) * { * NotificacionVencimiento notificacion = new NotificacionVencimiento * { * RegistroCapacitacion = registroPorVencer, * MailNotificacionVencimiento = string.Empty, * Estado = EstadoNotificacionVencimiento.NotificacionPendiente * }; * * db.NotificacionVencimientos.Add(notificacion); * } * * //si se agregó alguna notificación de vencimiento * if (registrosPorVencer.ToList().Count > 0) * db.SaveChanges(); */ }
public ActionResult EditarItem([Bind(Include = "ConfiguracionID,Index,Order,Seccion,SubSeccion,Label,Value")] Configuracion configuracion) { if (ModelState.IsValid) { db.Entry(configuracion).State = EntityState.Modified; db.SaveChanges(); return(View(configuracion)); } return(View("EditarItem", configuracion)); }
public ActionResult CreateWithCapacitado([Bind(Include = "RegistroCapacitacionID,Aprobado,Nota,NotaPrevia,Estado,JornadaID,CapacitadoID,FechaVencimiento")] RegistroCapacitacion registroCapacitacion) { if (ModelState.IsValid) { registroCapacitacion.SetearAtributosControl(); var jornada = db.Jornada.Where(j => j.JornadaID == registroCapacitacion.JornadaID).FirstOrDefault(); if (jornada == null) { return(HttpNotFound()); } if (jornada.PermiteEnviosOVAL) { registroCapacitacion.EnvioOVALEstado = EstadosEnvioOVAL.PendienteEnvio; } else { registroCapacitacion.EnvioOVALEstado = EstadosEnvioOVAL.NoEnviar; } db.RegistroCapacitacion.Add(registroCapacitacion); db.SaveChanges(); //return RedirectToAction("Index"); return(RedirectToAction("Details", "Capacitados", new { id = registroCapacitacion.CapacitadoID })); } var capacitado = db.Capacitados.Find(registroCapacitacion.CapacitadoID); if (capacitado != null) { ViewBag.Capacitado = capacitado; ViewBag.CapacitadoID = capacitado.CapacitadoID; } else { return(new HttpNotFoundResult()); } var jornadas = db.Jornada.Where(j => j.UsuarioModificacion == User.Identity.Name); ViewBag.JornadaID = new SelectList(jornadas.OrderByDescending(j => j.Fecha).ThenByDescending(j => j.Hora).ToList(), "JornadaID", "JornadaIdentificacionCompleta", registroCapacitacion.JornadaID); return(View("Create")); }
public bool Add(ComentariosCursos model) { try { _cursosDbContext.Add(model); _cursosDbContext.SaveChanges(); } catch (Exception) { return(false); } return(true); }
public bool EnviarDatosRegistroOVAL(int registroCapacitacionId, ref int totalAceptados, ref int totalRechazados) { //se inicializa nuevamente el db context para evitar que se lean datos cacheados db = new CursosDbContext(); var registroCapacitacion = db.RegistroCapacitacion.Where(r => r.RegistroCapacitacionID == registroCapacitacionId).FirstOrDefault(); if (registroCapacitacion != null) { if (registroCapacitacion.ListoParaEnviarOVAL) { EstadosEnvioOVAL estado; RespuestaOVAL respuesta = this.EnviarDatosRegistro(registroCapacitacion); switch (respuesta.Codigo) { case 0: //si el registro se recibió correctamente estado = EstadosEnvioOVAL.Aceptado; totalAceptados++; break; case 1: //si el registro no se recibió correctamente estado = EstadosEnvioOVAL.Rechazado; totalRechazados++; break; default: return(false); } registroCapacitacion.EnvioOVALEstado = estado; registroCapacitacion.EnvioOVALFechaHora = DateTime.Now; registroCapacitacion.EnvioOVALUsuario = HttpContext.Current.User.Identity.Name; registroCapacitacion.EnvioOVALMensaje = respuesta.Mensaje; db.Entry(registroCapacitacion).State = EntityState.Modified; db.SaveChanges(); } } return(true); }
public ActionResult Create([Bind(Include = "CapacitadoID,Nombre,Apellido,Documento,Fecha,Telefono,EmpresaID,TipoDocumentoID")] Capacitado capacitado, HttpPostedFileBase upload, int?jornadaId) { if (ModelState.IsValid) { capacitado.SetearAtributosControl(); db.Capacitados.Add(capacitado); db.SaveChanges(); if (upload != null && upload.ContentLength > 0) { string nombreArchivo = PathArchivoHelper.GetInstance().ObtenerNombreFotoCapacitado(capacitado.CapacitadoID, System.IO.Path.GetExtension(upload.FileName)); string carpetaArchivo = PathArchivoHelper.GetInstance().ObtenerCarpetaFotoCapacitado(capacitado.CapacitadoID); string pathDirectorio = Path.Combine(Server.MapPath("~/Images/FotosCapacitados/"), carpetaArchivo); capacitado.PathArchivo = PathArchivoHelper.GetInstance().ObtenerPathArchivo(nombreArchivo, carpetaArchivo, pathDirectorio, upload, TiposArchivo.FotoCapacitado); db.Entry(capacitado).State = EntityState.Modified; db.SaveChanges(); } //si durante la cración se recibe un id de jornada, el capacitado es agregado a esa jornada if (jornadaId != null) { Jornada j = db.Jornada.Find(jornadaId); if (j == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } //se vuelve a cargar el capacitado para leer entidades asociadas capacitado = db.Capacitados.Where(c => c.CapacitadoID == capacitado.CapacitadoID).Include(c => c.TipoDocumento).FirstOrDefault(); var nuevoRC = new RegistroCapacitacion(); nuevoRC.SetearAtributosControl(); nuevoRC.Jornada = j; nuevoRC.Capacitado = capacitado; nuevoRC.Nota = 0; nuevoRC.Aprobado = true; nuevoRC.FechaVencimiento = j.ObtenerFechaVencimiento(true); if (j.PermiteEnviosOVAL) { nuevoRC.EnvioOVALEstado = EstadosEnvioOVAL.PendienteEnvio; } else { nuevoRC.EnvioOVALEstado = EstadosEnvioOVAL.NoEnviar; } db.RegistroCapacitacion.Add(nuevoRC); db.SaveChanges(); //si la incripción fue registrada por un usuario con perfil para inscripciones externas, se notifica por email if (System.Web.HttpContext.Current.User.IsInRole("InscripcionesExternas")) { NotificacionesEMailHelper.GetInstance().EnviarEmailsNotificacionInscripcionExterna(nuevoRC, true); } return(RedirectToAction("Details", "Jornadas", new { id = jornadaId })); } return(RedirectToAction("Details", "Capacitados", new { id = capacitado.CapacitadoID })); } ViewBag.TipoDocumentoID = new SelectList(db.TiposDocumento.ToList(), "TipoDocumentoID", "Descripcion", capacitado.TipoDocumentoID); ViewBag.EmpresaID = new SelectList(db.Empresas.OrderBy(e => e.NombreFantasia).ToList(), "EmpresaID", "NombreFantasia", capacitado.EmpresaID); return(View(capacitado)); }
public async Task <ActionResult> Edit() { string id = Request["Id"]; string roleNameEditado = Request["RoleName"]; Empresa empresaEditada = dbcursos.Empresas.Find(int.Parse(Request["EmpresaID"])); Instructor instructorEditado = dbcursos.Instructores.Find(int.Parse(Request["InstructorID"])); //https://blog.productiveedge.com/asp-net-mvc-checkboxfor-explained bool permitirInscripcionesExternas = Request["PermitirInscripcionesExternas"].Contains("true") ? true : false; var usuario = db.Users.Where(u => u.Id == id).FirstOrDefault(); bool usuarioPuedeInscripcionesExternas = UsuarioHelper.GetInstance().UsuarioTieneRol(usuario.UserName, "InscripcionesExternas"); string roleNameActual = UsuarioHelper.GetInstance().ObtenerRoleName(usuario.Roles.ElementAt(0).RoleId); var empresaActual = UsuarioHelper.GetInstance().ObtenerEmpresaAsociada(usuario.UserName); var instructorActual = UsuarioHelper.GetInstance().ObtenerInstructorAsociado(usuario.UserName); bool quitarAsociacionEmpresa = false; bool quitarAsociacionInstructor = false; //si se modificó el rol del usuario if (roleNameActual != roleNameEditado) { if (roleNameActual == "ConsultaEmpresa") //si antes el usuario estaba asociado a una empresa, se debe remover la asociación a esta empresa { quitarAsociacionEmpresa = true; } if (roleNameActual == "InstructorExterno") { quitarAsociacionInstructor = true; } this.UserManager.RemoveFromRole(id, roleNameActual); await this.UserManager.AddToRoleAsync(id, roleNameEditado); } //si está seleccionada la opción "PermitirInscripcionesExternas" y el usuario editado no tenía el rol asociado, se le agrega el rol "InscripcionesExternas" if (permitirInscripcionesExternas) { if (!usuarioPuedeInscripcionesExternas && roleNameEditado == "ConsultaEmpresa") { await this.UserManager.AddToRoleAsync(id, "InscripcionesExternas"); } } else //si no está seleccionada la opción "PermitirInscripcionesExternas" y el usuario editado no tenía el rol asociado anteriormente, se retira el rol { if (usuarioPuedeInscripcionesExternas) { this.UserManager.RemoveFromRole(id, "InscripcionesExternas"); } } int empresaActualID = -1; if (empresaActual != null) { empresaActualID = empresaActual.EmpresaID; } int empresaEditadaID = -1; if (empresaEditada != null) { empresaEditadaID = empresaEditada.EmpresaID; } //si el usuario estaba asociado a una empresa y se cambió esa empresa, o si tenía el rol "ConsultaEmpresa" y cambió por otro if ((empresaActualID != -1 && empresaActualID != empresaEditadaID) || quitarAsociacionEmpresa) { this.RemoverAsociacionUsuarioAEmpresa(usuario.UserName); } if (roleNameEditado == "ConsultaEmpresa") { if (empresaActualID != empresaEditadaID) { this.AsociarUsuarioAEmpresa(empresaEditadaID, usuario.UserName); } } int instructorActualID = -1; if (instructorActual != null) { instructorActualID = instructorActual.InstructorID; } int instructorEditadoID = -1; if (instructorEditado != null) { instructorEditadoID = instructorEditado.InstructorID; } //si el usuario estaba asociado a una empresa y se cambió esa empresa, o si tenía el rol "ConsultaEmpresa" y cambió por otro if ((instructorActualID != -1 && instructorActualID != instructorEditadoID) || quitarAsociacionInstructor) { this.RemoverAsociacionUsuarioInstructor(usuario.UserName); } if (roleNameEditado == "InstructorExterno") { if (instructorActualID != instructorEditadoID) { this.AsociarUsuarioAInstructor(instructorEditadoID, usuario.UserName); } } dbcursos.SaveChanges(); return(RedirectToAction("Index")); }
public void SaveChanges() { _dbContext.SaveChanges(); }
//se marcan para no enviar aquellos registros de cursos que los capacitados ya actualizaron private void MarcarRegistrosYaActualizados(DateTime proximaFechaVencimientoNotificar) { List <int> notificacionVencimientosIds = null; List <int> capacitadosIds = null; List <int> jornadasVencidasId = null; //se obtienen los Ids de las notificaciones que están por vencer using (CursosDbContext db = new CursosDbContext()) { var notificacionVencimientos = db.NotificacionVencimientos .Where(n => n.Estado == EstadoNotificacionVencimiento.NotificacionPendiente) .Where(n => n.RegistroCapacitacion.FechaVencimiento <= proximaFechaVencimientoNotificar); notificacionVencimientosIds = notificacionVencimientos.Select(n => n.NotificacionVencimientoID).ToList(); capacitadosIds = notificacionVencimientos.Select(n => n.RegistroCapacitacion.Capacitado.CapacitadoID).ToList(); jornadasVencidasId = notificacionVencimientos.Select(n => n.RegistroCapacitacion.JornadaID).Distinct().ToList(); } int i = 0; foreach (var jornadaVencidaId in jornadasVencidasId) { using (CursosDbContext db = new CursosDbContext()) { Jornada jornadaVencida = null; try { jornadaVencida = db.Jornada.Find(jornadaVencidaId); //var capacitado = db.Capacitados.Find(capacitadosIds[i]); } catch (Exception ex) { throw ex; } int currentCapacitadoId = capacitadosIds[i]; var capacitado = db.Capacitados.Where(c => c.CapacitadoID == currentCapacitadoId) .Include(c => c.RegistrosCapacitacion).FirstOrDefault(); //se obtiene la última jornada asociada al curso de la jornada que se debería notificar como vencida var ultimaJornadaCursoRegistrada = capacitado.RegistrosCapacitacion.Where(r => r.Jornada.CursoId == jornadaVencida.CursoId).OrderByDescending(r => r.Jornada.Fecha).FirstOrDefault(); //si la última jornada que tomó el capacitado no coincide con la que se va a notificar //es porque el capacitado ya tomó una jornada de actualización por lo que no es necesario notificar ese vencimiento if (ultimaJornadaCursoRegistrada != null && ultimaJornadaCursoRegistrada.JornadaID != jornadaVencida.JornadaID) { var notificacionVencimiento = db.NotificacionVencimientos.Find(notificacionVencimientosIds[i]); notificacionVencimiento.Estado = EstadoNotificacionVencimiento.NoNotificar; string mensajelog = string.Format("{0} - {1}. No se notificará el vecimiento de la jornada {2} porque el Capacitado ya tiene una jornada posterior correspondiente a ese curso.", capacitado.DocumentoCompleto, capacitado.NombreCompleto, jornadaVencida.JornadaIdentificacionCompleta); LogHelper.GetInstance().WriteMessage("notificaciones", mensajelog); db.SaveChanges(); } } i++; } /* * using (CursosDbContext db = new CursosDbContext()) * { * var notificacionVencimientos = db.NotificacionVencimientos * .Where(n => n.Estado == EstadoNotificacionVencimiento.NotificacionPendiente) * .Where(n => n.RegistroCapacitacion.FechaVencimiento <= proximaFechaVencimientoNotificar) * .Include(n => n.RegistroCapacitacion) * .Include(n => n.RegistroCapacitacion.Capacitado.RegistrosCapacitacion); * * if (notificacionVencimientos.Count() > 0) * { * //se verifica que el capacitado no tenga jornadas posteriores a la * foreach (var n in notificacionVencimientos) * { * var capacitado = n.RegistroCapacitacion.Capacitado; * var jornadaVencida = n.RegistroCapacitacion.Jornada; * * //se obtiene la última jornada asociada al curso de la jornada que se debería notificar como vencida * var ultimaJornadaCursoRegistrada = * capacitado.RegistrosCapacitacion.Where(r => r.Jornada.CursoId == jornadaVencida.CursoId).OrderByDescending(r => r.Jornada.Fecha).First(); * * //si la última jornada que tomó el capacitado no coincide con la que se va a notificar * //es porque el capacitado ya tomó una jornada de actualización por lo que no es necesario notificar ese vencimiento * if (ultimaJornadaCursoRegistrada.JornadaID != jornadaVencida.JornadaID) * n.Estado = EstadoNotificacionVencimiento.NoNotificar; * } * * //db.SaveChanges(); * } * } */ }