Example #1
0
        private bool notificarLiberacion(Documento objDocumento)
        {
            Console.WriteLine("Vamos a empezar a notificar por correo, ya para terminar, que ya me quiero echar otro sueño!");
            System.Threading.Thread.Sleep(5000);
            Console.WriteLine("Vamos verificando la gente que el dueño de documento quiere que le notifiquemos.");
            System.Threading.Thread.Sleep(4000);

            //Declaramos una lista la cual almacenará todos los id's de los usuarios que se van a notificar.
            List <string> lUsuariosNotificar = new List <string>();

            //Asignamos por default los id´s del dueño del documento así como del usuario que aprueba el documento.
            lUsuariosNotificar.Add(objDocumento.version.id_usuario_autorizo);
            lUsuariosNotificar.Add(objDocumento.version.id_usuario);

            //Declaramos una los con los usuarios que seleccionó el dueño de documento para notifcarles.
            ObservableCollection <DO_USUARIO_NOTIFICACION_VERSION> ListaUsuariosCorreoCompleta = DataManagerControlDocumentos.GetAllUsuariosNotificacionVersion(objDocumento.version.id_version);

            //Llenamos la lista con los id de los usuarios
            foreach (var item in ListaUsuariosCorreoCompleta)
            {
                lUsuariosNotificar.Add(item.id_usuario);
            }

            //Declaramos una lista con los usuarios suscritos a los cambios de este documento.
            ObservableCollection <DO_UsuarioSuscrito> ListaUsuariosSuscritos = DataManagerControlDocumentos.Get_UserSuscripDoc(objDocumento.id_documento);

            //Llenamos la lista con los id de los usuarios
            foreach (var item in ListaUsuariosSuscritos)
            {
                lUsuariosNotificar.Add(item.id_usuariosuscrito);
            }

            //Declaramos el vector el cual guardará los correos de los usuarios.
            string[] correos = new string[lUsuariosNotificar.Count];

            int i = 0;

            //Iteramos la lista con los id´s de los usuarios para obtener el correo.
            foreach (var item in lUsuariosNotificar)
            {
                string correo = DataManagerControlDocumentos.GetCorreoUsuario(item);
                correos[i] = correo;
                i++;
            }

            //Eliminamos correos duplicados
            correos = Module.EliminarCorreosDuplicados(correos);

            Console.WriteLine("Ok, Ok, listo ya tengo la lista, deja empiezo a armar el correo...");
            System.Threading.Thread.Sleep(3500);


            //Verificamos si son documentos Procedimientos y Formatos
            if (objDocumento.id_tipo_documento == 1003 || objDocumento.id_tipo_documento == 1005 || objDocumento.id_tipo_documento == 1006 || objDocumento.id_tipo_documento == 1012 || objDocumento.id_tipo_documento == 1013 || objDocumento.id_tipo_documento == 1014 || objDocumento.id_tipo_documento == 1011)
            {
                //Ejecutamos el método para obtener el id de la versión anterior
                int last_version = DataManagerControlDocumentos.GetID_LastVersion(objDocumento.id_documento, objDocumento.version.id_version);

                NotificarNuevaVersion(objDocumento, correos, last_version == 0 ? true : false);
            }
            else
            {
                string confirmacionCorreo = string.Empty;

                if (NotificarDocumentoDisponibleConSello(objDocumento, correos))
                {
                    //confirmacionCorreo = StringResources.msgNotificacionCorreo;
                    confirmacionCorreo = "TODO: Mensaje de confirmación de correo";
                }
                else
                {
                    //confirmacionCorreo = StringResources.msgNotificacionCorreoFallida;
                    confirmacionCorreo = "TODO:Mensaje de error al enviar correo";
                }

                //await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgMatrizActualizada + "\n" + confirmacionCorreo);
            }

            Console.WriteLine("Todo Ok, a enviar ahora si el correo....");
            System.Threading.Thread.Sleep(3000);
            Console.WriteLine("El correo se envió perrón!!");
            System.Threading.Thread.Sleep(3000);
            return(true);
        }