//Elimina los archivos de una reunion en especifico
        public bool EliminarArchivo(string TN_Id_Archivo)
        {
            BusinessArchivos dataArchivo = new BusinessArchivos(Configuration);

            //eliminar los archivos y retorna true si lo hizo o false sino lo logro.
            return(dataArchivo.EliminarArchivo(TN_Id_Archivo));
        }
        //Lista de los archivos que posee una reunion
        public IActionResult CargarArchivosReunion(string IdReunionArchivos)
        {
            List <ArchivoModel> listaArchivos    = new List <ArchivoModel>();
            BusinessArchivos    businessArchivos = new BusinessArchivos(Configuration);

            //lista archivos
            listaArchivos = businessArchivos.listarArchivos(IdReunionArchivos);

            BusinessAgenda      businessAgenda = new BusinessAgenda(Configuration);
            List <ReunionModel> listaReuniones = new List <ReunionModel>();

            //El ViewBag.PermisoUsuario se utiliza controlar el inicio de session de un usuario y su respectivos permisos
            ViewBag.PermisoUsuario = HttpContext.Session.GetString("UsuarioPermiso");

            //Lista las reuniones que tenga el usuario que esta en linea para ponerlas en el calendario
            listaReuniones         = businessAgenda.getReuniones(HttpContext.Session.GetString("UsuarioLogin"));
            ViewBag.ListaReuniones = listaReuniones;

            //valida la existencia de la lista de archivos para retornarlos a interfaz
            if (listaArchivos != null)
            {
                ViewBag.ListaArchivos = listaArchivos;
                return(View("Calendario"));
            }
            else
            {
                return(View("Calendario"));
            }
        }
        //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"));
            }
        }
        //Lista  archivos segun id de una reunion
        public List <ArchivoModel> listarArchivos(string idElemento)
        {
            BusinessArchivos    businessArchivos     = new BusinessArchivos(Configuration);
            List <ArchivoModel> ListaArchivosReunion = new List <ArchivoModel>();

            //Lista los archivos
            ListaArchivosReunion = businessArchivos.listarArchivos(idElemento);
            return(ListaArchivosReunion);
        }
        //Se encarga de traer todos los datos de la reunion a la que el usuario desea ingresar
        //En el metodo de arriba el usuario valida si puede ingresar si es asi desde java script lo lleva a este metodo y carga la reunion
        public IActionResult ViewReunionEnEjecucion()
        {
            //Trae el id de la reunion que escogio el usuario
            string            IdReunionAsistir   = HttpContext.Session.GetString("IdReunionIniciarEjecucion");
            BusinessAgenda    businessAgenda     = new BusinessAgenda(Configuration);
            List <TareaModel> ListaTareasReunion = new List <TareaModel>();

            //Trae las tareas de esa reunion
            ListaTareasReunion  = businessAgenda.getTareasReunion(IdReunionAsistir);
            ViewBag.ListaTareas = ListaTareasReunion;

            List <UsuarioModel> ListaAsistentesReunion = new List <UsuarioModel>();

            //Trae la lista de usuarios de la reunion
            ListaAsistentesReunion = businessAgenda.getAsistentesReunion(IdReunionAsistir);
            ViewBag.ListaUsuarios  = ListaAsistentesReunion;

            BusinessArchivos    businessArchivos = new BusinessArchivos(Configuration);
            List <ArchivoModel> listaArchivos    = new List <ArchivoModel>();

            //Trae la lista de archivos de la reunion
            listaArchivos         = businessArchivos.listarArchivos(IdReunionAsistir);
            ViewBag.ListaArchivos = listaArchivos;

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

            //Trae los datos de la reunion a la cual desea asistir
            reunionAsistir         = businessReunion.getReunionModificar(IdReunionAsistir);
            ViewBag.ReunionAsistir = reunionAsistir;

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

            //Trae la lista de temas de la reunion
            listaTemas = businessReunion.ListarTemasReunion(IdReunionAsistir);
            if (listaTemas != null)
            {
                ViewBag.ListaTemas = listaTemas;
            }

            string usuarioCreadorReunion = businessReunion.UsuarioCreadorReunion(IdReunionAsistir);


            ViewBag.PermisoUsuario = HttpContext.Session.GetString("UsuarioPermiso");

            //valida si la persona que esta ingresando es el creador de la reunion para darle permiso de terminarla.
            if (usuarioCreadorReunion == HttpContext.Session.GetString("UsuarioLogin"))
            {
                ViewBag.CreadorReunion = usuarioCreadorReunion;
                return(View("EjecucionReunionView"));
            }
            else
            {
                return(View("EjecucionReunionUsuarioEstandar"));
            }
        }
        //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 TerminarReunion(string IdReunionTerminada)
        {
            BusinessReunion businessReunion = new BusinessReunion(Configuration);
            //Retorna true si la reunion se pude terminar correctamente
            bool valido = businessReunion.TerminarReunion(IdReunionTerminada);

            if (valido)
            {
                //El ViewBag.PermisoUsuario se utiliza controlar el inicio de session de un usuario y su respectivos permisos
                ViewBag.PermisoUsuario = HttpContext.Session.GetString("UsuarioPermiso");

                BusinessAgenda      businessAgenda = new BusinessAgenda(Configuration);
                List <ReunionModel> listaReuniones = new List <ReunionModel>();

                //Traer la lista de reuniones que tiene en la agenda el usuario que esta en linea.
                listaReuniones         = businessAgenda.getReuniones(HttpContext.Session.GetString("UsuarioLogin"));
                ViewBag.ListaReuniones = listaReuniones;

                return(View("../Agenda/Calendario"));
            }
            else
            {
                //En caso de que falle
                string            IdReunionAsistir   = HttpContext.Session.GetString("IdReunionIniciarEjecucion");
                BusinessAgenda    businessAgenda     = new BusinessAgenda(Configuration);
                List <TareaModel> ListaTareasReunion = new List <TareaModel>();
                // trae la lista de tareas de la reunion
                ListaTareasReunion  = businessAgenda.getTareasReunion(IdReunionAsistir);
                ViewBag.ListaTareas = ListaTareasReunion;

                List <UsuarioModel> ListaAsistentesReunion = new List <UsuarioModel>();
                // trae la lista de usuarios de la reunion
                ListaAsistentesReunion = businessAgenda.getAsistentesReunion(IdReunionAsistir);
                ViewBag.ListaUsuarios  = ListaAsistentesReunion;

                BusinessArchivos    businessArchivos = new BusinessArchivos(Configuration);
                List <ArchivoModel> listaArchivos    = new List <ArchivoModel>();
                // trae la lista de archivos de la reunion
                listaArchivos         = businessArchivos.listarArchivos(IdReunionAsistir);
                ViewBag.ListaArchivos = listaArchivos;

                ReunionModel reunionAsistir = new ReunionModel();
                //trae la reunion en la que esta asitiendo
                reunionAsistir         = businessReunion.getReunionModificar(IdReunionAsistir);
                ViewBag.ReunionAsistir = reunionAsistir;

                List <TemasModel> listaTemas = new List <TemasModel>();
                // trae la lista de temas de la reunion
                listaTemas = businessReunion.ListarTemasReunion(IdReunionAsistir);
                if (listaTemas != null)
                {
                    ViewBag.ListaTemas = listaTemas;
                }


                string usuarioCreadorReunion = businessReunion.UsuarioCreadorReunion(IdReunionAsistir);
                //El ViewBag.PermisoUsuario se utiliza controlar el inicio de session de un usuario y su respectivos permisos
                ViewBag.PermisoUsuario = HttpContext.Session.GetString("UsuarioPermiso");
                //Se valida si el usuario es el creador de la reunion
                if (usuarioCreadorReunion == HttpContext.Session.GetString("UsuarioLogin"))
                {
                    ViewBag.CreadorReunion = usuarioCreadorReunion;
                    return(View("EjecucionReunionView"));
                }
                else
                {
                    return(View("EjecucionReunionUsuarioEstandar"));
                }
            }
        }