/// <summary> /// /// </summary> /// <param name="solicitudDTO"></param> /// <returns></returns> public MensajeDTO Agregar(SolicitudDTO solicitudDTO) { if (this.SolicitudValida(solicitudDTO)) { Solicitud solicitud; solicitud = TransferirEntidad.TransferirDatosSolicitudDTO(solicitudDTO); //Busca credecniales del usuario logeado Models.Entidades.UABC.Usuario usuario = usuarioUABCRepositorio.BuscarUsuarioUABC(solicitud.Correo_Solicitante); Usuario subdirector = usuarioRepositorio.BuscarPorRol((int)RolEnum.Subdirector); //Busca al proximo usuario que su rol es coordinador //Envia el correo al sigueinte usuario CorreoComponente correo = new CorreoComponente(usuario.Email, usuario.Contraseña); if (correo.MandarCorreo("Sistema Solicitud de Salida" + "Tiene una solicitud pendiente por revisar ", "Solicitud Pendiente", subdirector.Correo)) { solicitudRepositorio.Agregar(solicitud); return(MensajeComponente.mensaje("Solicitud creada exitosamente", true)); } return(MensajeComponente.mensaje("Error al crear la solicitud", false)); } return(MensajeComponente.mensaje("Error al crear la solicitud", false)); }
/// <summary> /// /// </summary> /// <param name="usuario"></param> /// <returns></returns> public MensajeDTO BuscarSolicitudesPorRols(SolicitudFiltro filtro, int paginacion) { List <SolicitudDTO> solicitudesDTO = new List <SolicitudDTO>(); List <Solicitud> solicitudes; MensajeDTO mensaje; if (filtro.Carrera == null) { filtro.carrera = true; filtro.Carrera = new CarreraDTO(); } if (filtro.Nombre == null) { filtro.Nombre = ""; } if (filtro.usuario.Rol != null) { switch (filtro.usuario.Rol.Descripcion) { case "Coordinador": solicitudes = solicitudRepositorio.buscarSolicitudesPorCoordinador(filtro); break; case "Posgrado": solicitudes = solicitudRepositorio.BuscarSolicitudPorPosgrado(filtro); break; case "Administradora": solicitudes = solicitudRepositorio.buscarSolicitudesPorAdministrador(filtro); break; case "Subdirector": solicitudes = solicitudRepositorio.BuscarSolicitudPorSubDirector(filtro); break; case "Director": solicitudes = solicitudRepositorio.BuscarSolicitudPorDirector(filtro); break; default: solicitudes = new List <Solicitud>(); break; } } else { solicitudes = solicitudRepositorio.buscarSolicitudesPorDocente(filtro); } foreach (Solicitud solicitud in solicitudes) { solicitudesDTO.Add(TransferirDTO.TransferirSolicitud(solicitud)); } mensaje = MensajeComponente.mensaje("Datos", solicitudesDTO.Skip(paginacion - 10).Take(paginacion)); mensaje.largo = solicitudesDTO.Count(); return(mensaje); }
/// <summary> /// /// </summary> /// <param name="usuario"></param> /// <param name="id"></param> /// <returns></returns> public MensajeDTO AceptarSolicitud(UsuarioDTO usuario, int id) { Solicitud solicitud = solicitudRepositorio.BuscarPorId(id); Models.Entidades.UABC.Usuario usuarioUABC = usuarioUABCRepositorio.BuscarUsuarioUABC(usuario.Correo); CorreoComponente correo = new CorreoComponente(usuarioUABC.Email, usuarioUABC.Contraseña); Usuario destinatario = null; bool solicitudTerminadaRevision = false; switch (usuario.Rol.Descripcion) { case "Coordinador": solicitud.Validacion.Coordinador = true; destinatario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Director); break; case "Posgrado": solicitud.Validacion.Posgrado = true; solicitudTerminadaRevision = true; break; case "Administradora": solicitud.Validacion.Administrador = true; destinatario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Coordinador); break; case "Subdirector": solicitud.Validacion.Subdirector = true; destinatario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Administradora); break; case "Director": solicitud.Validacion.Director = true; if (solicitud.Actividad.Posgrado == true) { destinatario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Posgrado); } else { solicitudTerminadaRevision = true; } break; } if (solicitudTerminadaRevision) { solicitud.Id_Estado = (int)EstadoEnum.Aceptado; correo.MandarCorreo("Sistema Solicitud de Salida" + "La solicitud:" + id + "ha sido aceptada", "Solicitud Aceptada", solicitud.Correo_Solicitante); } else { correo.MandarCorreo("Sistema Solicitud de Salida" + "Tiene una solicitud pendiente por revisar. Solicitud :" + id , "Solicitud Pendiente", destinatario.Correo); } solicitudRepositorio.Modificar(solicitud); return(MensajeComponente.mensaje("Se ha aprobado correctamente", true)); }
public MensajeDTO EditarSolicitud(SolicitudDTO solicitudDTO) { if (this.SolicitudValida(solicitudDTO)) { Solicitud solicitud = solicitudRepositorio.BuscarPorId(solicitudDTO.Id); solicitud.Fecha_Modificacion = DateTime.Now; solicitud.Evento = TransferirDTO.TransferirEvento(solicitudDTO.Evento); solicitud.Actividad = TransferirDTO.TransferirActividad(solicitudDTO.Actividad); solicitud.Validacion = TransferirDTO.TransferirValidacion(solicitudDTO.Validacion); solicitud.Recurso = TransferirDTO.TransferirRecurso(solicitudDTO.Recurso_Solicitado); solicitud.Id_Carrera = solicitudDTO.Carrera.Id; solicitud.Id_Categoria = solicitudDTO.Categoria.Id; solicitud.Id_Estado = (int)EstadoEnum.Proceso; solicitud.Comentario_Rechazado = ""; Models.Entidades.UABC.Usuario usuarioUABC = usuarioUABCRepositorio.BuscarUsuarioUABC(solicitud.Correo_Solicitante); CorreoComponente correo = new CorreoComponente(usuarioUABC.Email, usuarioUABC.Contraseña); Usuario usuario; if (!solicitud.Validacion.Subdirector) { //Buscar subdirector usuario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Director); } else { if (!solicitud.Validacion.Administrador) { usuario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Administradora); //buscar administrador } else { if (!solicitud.Validacion.Coordinador) { usuario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Coordinador); //buscar coordinador } else { if (!solicitud.Validacion.Director) { usuario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Director); //buscar director } else { usuario = usuarioRepositorio.BuscarPorRol((int)RolEnum.Posgrado); //buscar posgrado } } } } correo.MandarCorreo("Sistema Solicitud de Salida" + "La solicitud: " + solicitud.Id + " ha sido corregida.", "Solicitud Pendiente", usuario.Correo); solicitudRepositorio.Modificar(solicitud); return(MensajeComponente.mensaje("Solicitud modificada exitosamente", true)); } return(MensajeComponente.mensaje("Error al crear la solicitud", false));; }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <returns></returns> public MensajeDTO RechazarTotalmente(int id, string Correo) { Models.Entidades.UABC.Usuario usuarioUABC = usuarioUABCRepositorio.BuscarUsuarioUABC(Correo); CorreoComponente correo = new CorreoComponente(usuarioUABC.Email, usuarioUABC.Contraseña); Solicitud solicitud = solicitudRepositorio.BuscarPorId(id); solicitudRepositorio.Borrar(solicitud); correo.MandarCorreo("Sistema Solicitud de Salida. " + "La solicitud: " + id + " ha sido rechazada." , "Solicitud Rechazada", solicitud.Correo_Solicitante); return(MensajeComponente.mensaje("Solicitud Rechazada", false)); }
/// <summary> /// /// </summary> /// <param name="usuario"></param> /// <param name="id"></param> /// <returns></returns> public MensajeDTO RechazarSolicitud(SolicitudDTO solicitudDTO) { Solicitud solicitud = solicitudRepositorio.BuscarPorId(solicitudDTO.Id); solicitud.Comentario_Rechazado = solicitudDTO.Comentario_Rechazado; solicitud.Id_Estado = (int)EstadoEnum.Rechazado; Models.Entidades.UABC.Usuario usuarioUABC = usuarioUABCRepositorio.BuscarUsuarioUABC(solicitud.Correo_Solicitante); CorreoComponente correo = new CorreoComponente(usuarioUABC.Email, usuarioUABC.Contraseña); correo.MandarCorreo("Sistema Solicitud de Salida" + "Se ha rechazado una solicitud", "Solicitud Pendiente", solicitud.Correo_Solicitante); solicitudRepositorio.Modificar(solicitud); return(MensajeComponente.mensaje("Se ha aprobado correctamente", true)); }
/// <summary> /// /// </summary> /// <param name="usuario"></param> /// <returns></returns> public MensajeDTO InicioSesion(UsuarioDTO usuario) { Models.Entidades.UABC.Usuario usuarioUABC = usuarioRepositorioUABC.BuscarUsuarioUABC(usuario.Correo); if (usuarioUABC != null) { if (usuario.Contrasenia.Equals(usuarioUABC.Contraseña)) { Models.Entidades.FIAD.Usuario usuarioFIAD = usuarioRepositorioFIAD.BuscarUsuarioFIAD(usuario.Correo); if (usuarioFIAD != null) { Models.Entidades.SS.Usuario usuarioSS = usuarioRepositorioSS.BuscarPorCorreo(usuario.Correo); if (usuarioSS != null) { UsuarioDTO usuarioAdministrativo = TransferirDTO.TransferirUsuario(usuarioSS); usuarioAdministrativo.Nombre = usuarioUABC.Nombre; usuarioAdministrativo.Apellido = usuarioUABC.Apellido; usuarioAdministrativo.Numero_Empleado = usuarioUABC.Numero_Empleado; return(MensajeComponente.mensaje("Se ha iniciado sesion como " + usuarioAdministrativo.Rol.Nombre, usuarioAdministrativo)); } else { UsuarioDTO usuarioProfesor = new UsuarioDTO(); usuarioProfesor.Nombre = usuarioUABC.Nombre; usuarioProfesor.Apellido = usuarioUABC.Apellido; return(MensajeComponente.mensaje("Se ha iniciado sesion como Profesor", usuarioProfesor)); } } else { return(MensajeComponente.mensaje("El usuario no pertenece a la Facultad de Ingenieria, Arquitectura y Diseño", null)); } } else { return(MensajeComponente.mensaje("La contraseña introducida es incorrecta", null)); } } else { return(MensajeComponente.mensaje("El usuario no pertenece a el dominio de UABC", null)); } }
/// <summary> /// /// </summary> /// <param name="id"></param> /// <param name="usuario"></param> /// <returns></returns> public MensajeDTO AceptarTotalmente(int id, string Correo) { Models.Entidades.UABC.Usuario usuarioUABC = usuarioUABCRepositorio.BuscarUsuarioUABC(Correo); CorreoComponente correo = new CorreoComponente(usuarioUABC.Email, usuarioUABC.Contraseña); Solicitud solicitud = solicitudRepositorio.BuscarPorId(id); solicitud.Id_Estado = (int)EstadoEnum.Aceptado; solicitud.Validacion.Subdirector = true; solicitud.Validacion.Administrador = true; solicitud.Validacion.Coordinador = true; solicitud.Validacion.Director = true; solicitud.Validacion.Posgrado = true; solicitudRepositorio.Modificar(solicitud); correo.MandarCorreo("Sistema Solicitud de Salida. " + "La solicitud: " + id + " ha sido aceptada." , "Solicitud Aceptada", solicitud.Correo_Solicitante); return(MensajeComponente.mensaje("Solicitud Aprobada", true)); }
/// <summary> /// /// </summary> /// <param name="usuarioDTO"></param> /// <returns></returns> public MensajeDTO Modificar(UsuarioDTO usuarioDTO) { if (this.UsuarioValido(usuarioDTO)) { if (ExisteComponente.UABC(usuarioDTO) && ExisteComponente.FIAD(usuarioDTO)) { if (usuarioRepositorio.BuscarPorCorreo(usuarioDTO.Correo) == null) { Usuario usuario = usuarioRepositorio.BuscarPorId(usuarioDTO.Id); usuario.Correo = usuarioDTO.Correo; usuarioRepositorio.Modificar(usuario); return(MensajeComponente.mensaje("", true)); } return(MensajeComponente.mensaje("El correo ya existe en el sistema", false)); } return(MensajeComponente.mensaje("El correo no pertenece a UABC", false)); } return(MensajeComponente.mensaje("Los datos no son validos", false)); }
/// <summary> /// /// </summary> /// <param name="usuario"></param> /// <returns></returns> public MensajeDTO BuscarSolicitudesPorCorreo(SolicitudFiltro filtro, int paginacion) { List <SolicitudDTO> solicitudesDTO = new List <SolicitudDTO>(); if (filtro.Carrera == null) { filtro.carrera = true; filtro.Carrera = new CarreraDTO(); } List <Solicitud> solicitudes = solicitudRepositorio.BuscarSolicitudPorCorreo(filtro); MensajeDTO mensaje; foreach (Solicitud solicitud in solicitudes) { solicitudesDTO.Add(TransferirDTO.TransferirSolicitud(solicitud)); } mensaje = MensajeComponente.mensaje("Datos", solicitudesDTO.Skip(paginacion - 10).Take(paginacion).ToList()); mensaje.largo = solicitudesDTO.Count(); return(mensaje); }