public IActionResult Editar(PersonaLicencia personaLicencia) { if (_contextAccessor.HttpContext.User.Identity.IsAuthenticated) { if (_licenciaRepository.ValidarFechasLicencia(personaLicencia)) { personaLicencia.CodigoUsuario = _contextAccessor.HttpContext.User.Identity.Name; var resultado = _licenciaRepository.RegistrarLicencia(personaLicencia); if (resultado != 0) { TempData["TipoMensaje"] = "success"; TempData["Mensaje"] = "Guardado correctamente"; return(RedirectToAction("Crear", "Licencia")); } TempData["TipoMensaje"] = "error"; TempData["Mensaje"] = "Ocurrió un error al guardar"; return(RedirectToAction("Crear", "Licencia")); } TempData["TipoMensaje"] = "error"; TempData["Mensaje"] = "Las fechas de expedicion y vencimientos estan registradas en otra licencia"; return(RedirectToAction("Crear", "Licencia")); } return(RedirectToAction("Login", "Usuario")); }
public int RegistrarLicencia(PersonaLicencia personaLicencia) { if (personaLicencia.IdLicenciaPersona != 0) { _db.Attach(personaLicencia); _db.Entry(personaLicencia).Property(p => p.CodigoLicencia).IsModified = true; _db.Entry(personaLicencia).Property(p => p.FechaRenovacion).IsModified = true; _db.Entry(personaLicencia).Property(p => p.FechaInicio).IsModified = true; _db.Entry(personaLicencia).Property(p => p.FechaFin).IsModified = true; } else { personaLicencia.IdLicenciaPersona = _db.PersonaLicencia .Where(p => p.IdPersona == personaLicencia.IdPersona) .Select(p => p.IdLicenciaPersona) .DefaultIfEmpty(0) .Max() + 1; personaLicencia.FechaUsuario = DateTime.Now; personaLicencia.Estacion = Environment.MachineName; personaLicencia.IpEstacion = Utilidad.ObtenerIpv4(); personaLicencia.IdEmpresa = 1; _db.PersonaLicencia.Add(personaLicencia); } return(_db.SaveChanges()); }
public bool ValidarFechasLicencia(PersonaLicencia personaLicencia) { var x = _db.PersonaLicencia .Where(p => p.IdPersona == personaLicencia.IdPersona) .Where(p => personaLicencia.FechaInicio.Date > p.FechaInicio.Date && personaLicencia.FechaInicio.Date < p.FechaFin.Date) .Count(); var y = _db.PersonaLicencia .Where(p => p.IdPersona == personaLicencia.IdPersona) .Where(p => personaLicencia.FechaFin.Date > p.FechaInicio.Date && personaLicencia.FechaFin.Date < p.FechaFin.Date) .Count(); return(!(x + y > 0)); }