//Trae la tarea de la base de datos que el usuarios seleciono
        public IActionResult viewModificarTarea(string idTarea)
        {
            List <UsuarioModel> listaUsuarios   = new List <UsuarioModel>();
            BusinessUsuario     businessUsuario = new BusinessUsuario(Configuration);

            //Lista los usuarios, por si se desea modificar los usuarios de esa tarea
            listaUsuarios = businessUsuario.getListarUsuario();

            ViewBag.ListaUsuarios = listaUsuarios;


            BusinessTarea businessTarea  = new BusinessTarea(Configuration);
            TareaModel    tareaModificar = new TareaModel();

            //Lista la tarea que el usuario solicito modificar atravez del id de la misma
            tareaModificar = businessTarea.getTareaModificar(idTarea);

            ViewBag.TareaModificar = tareaModificar;

            //El ViewBag.PermisoUsuario se utiliza controlar el inicio de session de un usuario y su respectivos permisos
            ViewBag.PermisoUsuario = HttpContext.Session.GetString("UsuarioPermiso");
            return(View("ModificarTareaView"));
            //return new JsonResult(idTarea);
            //return new JsonResult(ViewBag.TareaModificar.TC_Nombre_Tarea);
        }
        //Muestra las vista para crear la reunion
        public IActionResult viewCrearReunion()
        {
            List <TipoReunionModel> listaTiposReunion = new List <TipoReunionModel>();
            List <UsuarioModel>     listaUsuarios     = new List <UsuarioModel>();
            List <TareaModel>       listaTareas       = new List <TareaModel>();

            BusinessCatalogo businessCatalogo = new BusinessCatalogo(Configuration);
            BusinessUsuario  businessUsuario  = new BusinessUsuario(Configuration);
            BusinessTarea    businessTarea    = new BusinessTarea(Configuration);

            //Lista las tareas, usuarios y los tipos de reunion para poder crearla luego en interfaz
            listaTiposReunion = businessCatalogo.getListarTipoReunion();
            listaUsuarios     = businessUsuario.getListarUsuario();
            listaTareas       = businessTarea.getListarTarea();

            //Validar si las listas no son nulas sino no llevarlas a interfaz
            if (listaTiposReunion != null)
            {
                ViewBag.ListaTiposReunion = listaTiposReunion;
            }

            if (listaUsuarios != null)
            {
                ViewBag.ListaUsuarios = listaUsuarios;
            }

            if (listaTareas != null)
            {
                ViewBag.ListaTareas = listaTareas;
            }

            //El ViewBag.PermisoUsuario se utiliza controlar el inicio de session de un usuario y su respectivos permisos
            ViewBag.PermisoUsuario = HttpContext.Session.GetString("UsuarioPermiso");
            return(View("CrearReunionView"));
        }
        //Se encarga de traer los datos de una reunion que desea modificar el usuario
        public IActionResult ViewModificarReunion(string idReunion, string Estado)
        {
            List <TipoReunionModel> listaTiposReunion = new List <TipoReunionModel>();
            List <UsuarioModel>     listaUsuarios     = new List <UsuarioModel>();
            List <TareaModel>       listaTareas       = new List <TareaModel>();
            List <ArchivoModel>     listaArchivos     = new List <ArchivoModel>();

            BusinessCatalogo businessCatalogo = new BusinessCatalogo(Configuration);
            BusinessUsuario  businessUsuario  = new BusinessUsuario(Configuration);
            BusinessTarea    businessTarea    = new BusinessTarea(Configuration);
            BusinessArchivos businessArchivos = new BusinessArchivos(Configuration);

            // Lista los tipos de reunion, todos los usuarios , todas la tareas, y todos los archivos que tenga esa reunion por si el usuario desea modificarlos
            //que pueda hacerlo
            listaTiposReunion = businessCatalogo.getListarTipoReunion();
            listaUsuarios     = businessUsuario.getListarUsuario();
            listaTareas       = businessTarea.getListarTarea();
            listaArchivos     = businessArchivos.listarArchivos(idReunion);

            ViewBag.ListaTiposReunion = listaTiposReunion;
            ViewBag.ListaUsuarios     = listaUsuarios;
            ViewBag.ListaTareas       = listaTareas;
            ViewBag.ListaArchivos     = listaArchivos;

            BusinessReunion businessReunion  = new BusinessReunion(Configuration);
            ReunionModel    reunionModificar = new ReunionModel();

            //Trae la reunion que el usuario solicito
            reunionModificar = businessReunion.getReunionModificar(idReunion);
            //El ViewBag.PermisoUsuario se utiliza controlar el inicio de session de un usuario y su respectivos permisos
            ViewBag.PermisoUsuario = HttpContext.Session.GetString("UsuarioPermiso");

            //Si la reunion ya finalizo la misma no se puede modificar

            if (Estado == "True")
            {
                //Para avisarle al usuario que no puede modificar una renunion que ya se finalizo
                ViewBag.ESTADO   = "La reunion ya a sido finalizada no se pueden realizar modificaciones";
                reunionModificar = null;
            }

            if (reunionModificar != null)
            {
                //Retorna la reunion que se desea modificar
                ViewBag.ReunionModificar = reunionModificar;
                return(View("ModificarReunionView"));
            }
            else
            {
                //En caso que estuviera finalizada se retorna el error que se creo arriba y la lista de todas las reuniones que se pueden eliminar y modificar

                List <ReunionModel> listaReuniones = new List <ReunionModel>();
                listaReuniones         = businessReunion.getListarReunion();
                ViewBag.ListaReuniones = listaReuniones;

                return(View("BuscaReunionView"));
            }
        }
        //Eliminar una tarea segun su id
        public IActionResult EliminarTarea(string idTarea)
        {
            List <TareaModel> listaTareas   = new List <TareaModel>();
            BusinessTarea     businessTarea = new BusinessTarea(Configuration);

            //Elimina la tarea y retorna la lista de todas la tareas, de esta manera en interfaz se podra ver si efectivamente se borro
            listaTareas = businessTarea.EliminarTarea(idTarea);

            ViewBag.ListaTareas = listaTareas;

            //El ViewBag.PermisoUsuario se utiliza controlar el inicio de session de un usuario y su respectivos permisos
            ViewBag.PermisoUsuario = HttpContext.Session.GetString("UsuarioPermiso");
            return(View("BuscarTareasView"));
        }
        //Se encarga de mostrar todas la tareas que se han creado para poder eliminarlas o modificarlas
        public IActionResult viewBuscarTarea()
        {
            List <TareaModel> listaTareas = new List <TareaModel>();

            BusinessTarea businessTarea = new BusinessTarea(Configuration);

            //Lista las tareas de la base de datos
            listaTareas = businessTarea.getListarTarea();

            ViewBag.ListaTareas = listaTareas;
            //El ViewBag.PermisoUsuario se utiliza controlar el inicio de session de un usuario y su respectivos permisos
            ViewBag.PermisoUsuario = HttpContext.Session.GetString("UsuarioPermiso");
            return(View("BuscarTareasView"));
        }
        public IActionResult CrearTarea(TareaModel tareaModel)
        {
            BusinessTarea businessTarea = new BusinessTarea(Configuration);
            //Se encarga de crear la tarea en caso de exito retorna un true y le notifica al usuario del exito de la operacion
            bool valido = businessTarea.CrearTarea(tareaModel);

            if (valido)
            {
                //return a java script
                return(new JsonResult("Si Creo"));
            }
            else
            {
                //return a java script
                return(new JsonResult("No guardo"));
            }
        }
        //Se encarga de mostrar el resumen de una reunion en especifico a travez de su id
        public IActionResult viewResumenReunion(string idReunion)
        {
            List <UsuarioModel> listaUsuarios = new List <UsuarioModel>();
            List <TareaModel>   listaTareas   = new List <TareaModel>();
            List <ArchivoModel> listaArchivos = new List <ArchivoModel>();

            BusinessUsuario  businessUsuario  = new BusinessUsuario(Configuration);
            BusinessTarea    businessTarea    = new BusinessTarea(Configuration);
            BusinessArchivos businessArchivos = new BusinessArchivos(Configuration);

            //Lista los usuarios, las tareas y los archivos de la reunion que solicito el usuario
            listaUsuarios = businessUsuario.getListarUsuarioReunion(idReunion); //Listar usuarios del idReunion
            listaTareas   = businessTarea.getListarTareaReunion(idReunion);     //Listar usuarios del idReunion
            listaArchivos = businessArchivos.listarArchivos(idReunion);

            BusinessReunion businessReunion = new BusinessReunion(Configuration);
            //Se crea un objeto de tipo ReunionModel para asi poder extraer toda las iformacion de esa reunion
            ReunionModel reunionesModel = new ReunionModel();

            reunionesModel = businessReunion.ResumenReunion(idReunion);


            ViewBag.ListaUsuarios  = listaUsuarios;
            ViewBag.ListaTareas    = listaTareas;
            ViewBag.ListaArchivos  = listaArchivos;
            ViewBag.reunionesModel = reunionesModel;

            BusinessDashboard businessDashboard = new BusinessDashboard(Configuration);

            //Se crea un objeto para guardar dinero tiempo y asistentes
            CantidadAsistentesModel cantidadAsistentesModel = new CantidadAsistentesModel();

            //Traer la cantidad de personas que asistienron y las que no esta reunion
            cantidadAsistentesModel = businessDashboard.getAsistenciaReunionUnica(idReunion);
            //Traer dinero invertido
            int dinero = businessDashboard.getDineroReunionUnica(idReunion);

            cantidadAsistentesModel.Dinero = dinero;
            //Traer tiempo invertido
            cantidadAsistentesModel.Tiempo = businessDashboard.getDuracionReunionUnica(idReunion);
            ViewBag.datosDashboard         = cantidadAsistentesModel;

            //El ViewBag.PermisoUsuario se utiliza controlar el inicio de session de un usuario y su respectivos permisos
            ViewBag.PermisoUsuario = HttpContext.Session.GetString("UsuarioPermiso");
            return(View("ResumenReunionView"));
        }
        public IActionResult ModificarTarea(TareaModel tareaModel)
        {
            BusinessTarea businessTarea = new BusinessTarea(Configuration);

            //Si la tarea fue modificada retorna true y le notifica al usuario del exito de la operacion
            bool valido = businessTarea.ModificarTarea(tareaModel);

            if (valido)
            {
                //return a java script
                return(new JsonResult("Si modifico"));
            }
            else
            {
                //return a java script
                return(new JsonResult("No guardo"));
            }
        }
        public IActionResult mostrarMinutaReunion(string idReunion)
        {
            //Se crea una lista de listas para poder llevar toda la informacion a travez del return new ViewAsPdf
            List <Object> listaDeListas = new List <object>();

            List <UsuarioModel> listaUsuarios   = new List <UsuarioModel>();
            BusinessUsuario     businessUsuario = new BusinessUsuario(Configuration);

            //lista de usuarios de la reunion
            listaUsuarios = businessUsuario.getUsuarioMinuta(idReunion);

            List <TareaModel> listaTareas   = new List <TareaModel>();
            BusinessTarea     businessTarea = new BusinessTarea(Configuration);

            //lista de tareas de la reunion
            listaTareas = businessTarea.getListarTareaMinuta(idReunion);

            ReunionModel    infoReunion     = new ReunionModel();
            BusinessReunion businessReunion = new BusinessReunion(Configuration);

            //retorna todos los datos de la reunion que se solicita atravez del id
            infoReunion = businessReunion.getReunionMinuta(idReunion);

            List <ReunionModel> listaTemas = new List <ReunionModel>();

            //lista de temas de la reunion
            listaTemas = businessReunion.getTemasMinuta(idReunion);

            listaDeListas.Add(listaUsuarios);
            listaDeListas.Add(listaTareas);
            listaDeListas.Add(infoReunion);
            listaDeListas.Add(listaTemas);

            //retorna la lista de listas
            return(new ViewAsPdf("/Views/Reunion/MinutaReunion.cshtml", listaDeListas)
            {
            });
        }