コード例 #1
0
        public void iniciarProceso()
        {
            List <DO_SolicitudCorreo> solicitudes = DataManager.GetSolicitudCorreoPendientes();
            ServiceEmail ServiceEmail             = new ServiceEmail();

            if (solicitudes.Count > 0)
            {
                Console.WriteLine("There are " + solicitudes.Count + " awaiting request: " + DateTime.Now.ToLongTimeString());
                System.Threading.Thread.Sleep(1000);
                Console.WriteLine("Attending...");
                System.Threading.Thread.Sleep(3000);
                var      solicitud  = solicitudes[0];
                string[] recipients = solicitud.Recipients.Split(',');

                List <string> attachments = new List <string>();

                if (solicitud.Origen == "LECCIONES_APRENDIDAS")
                {
                    ObservableCollection <Archivo_LeccionesAprendidas> ListaArchivosLecciones = DataManagerControlDocumentos.GetArchivosLecciones(solicitud.idArchivo);

                    List <Archivo> ListaArchivos = new List <Archivo>();

                    foreach (var archivoLecciones in ListaArchivosLecciones)
                    {
                        Archivo archivo = new Archivo();

                        archivo.archivo = File.ReadAllBytes(archivoLecciones.NOMBRE_ARCHIVO);
                        archivo.nombre  = archivoLecciones.NOMBRE_ARCHIVO;
                        archivo.ext     = archivoLecciones.EXT;
                        archivo.numero  = 666;

                        string pathFile = saveFileTemp(archivo);

                        attachments.Add(pathFile);
                    }
                }
                else if (solicitud.Origen == "CONTROL_DOCUMENTOS")
                {
                    //TODO: Get files of documents control
                    attachments = new List <string>();
                }

                bool banSent = ServiceEmail.SendEmailOutlook(recipients, solicitud.Title, solicitud.Body, attachments);

                if (banSent)
                {
                    DataManager.SetEjecutadaSolicitudCorreo(solicitud.IdSolicitudCorreo);
                }
            }
            else
            {
                Console.WriteLine("There are not awaiting request: " + DateTime.Now.ToLongTimeString());
            }
        }
コード例 #2
0
        /// <summary>
        /// Método para enviar el correo
        /// </summary>
        private async void enviarCorreo()
        {
            if (await validar())
            {
                ServiceEmail soEmail = new ServiceEmail();

                string recipients = "";

                foreach (var item in ListaUsuarioANotificar)
                {
                    recipients += item.Correo + ",";
                }

                recipients += User.Correo + ",";
                if (Origen == "LECCIONES_APRENDIDAS")
                {
                    //DataManager.InsertSolicitudCorreo(Title, BodyEmail, recipients, Origen, IdArchivo);
                    ServiceEmail  ServiceEmail = new ServiceEmail();
                    List <string> attachments  = new List <string>();

                    ObservableCollection <Archivo_LeccionesAprendidas> ListaArchivosLecciones = DataManagerControlDocumentos.GetArchivosLecciones(IdArchivo);
                    foreach (var archivoLecciones in ListaArchivosLecciones)
                    {
                        Archivo archivo = new Archivo();

                        archivo.archivo = archivoLecciones.ARCHIVO;
                        archivo.nombre  = archivoLecciones.NOMBRE_ARCHIVO;
                        archivo.ext     = archivoLecciones.EXT;
                        archivo.numero  = 666;

                        string pathFile = saveFileTemp(archivo);

                        attachments.Add(pathFile);
                    }

                    bool banSent = ServiceEmail.SendEmailOutlook(recipients.Split(','), Title, BodyEmail, attachments);
                }
                else
                {
                    DataManager.InsertSolicitudCorreo(Title, BodyEmail, recipients, Origen, IdArchivo);
                }


                var window = System.Windows.Application.Current.Windows.OfType <MetroWindow>().LastOrDefault();

                if (window != null)
                {
                    //Cerramos la pantalla
                    window.Close();
                }

                //// Inicializamos los servicios
                //ServiceEmail SO_Email = new ServiceEmail();
                //DialogService dialog = new DialogService();

                ////Declaramos un objeto de tipo ProgressDialogController, el cual servirá para recibir el resultado el mensaje progress.
                //ProgressDialogController AsyncProgress;

                //// Se declara vector de tamaño elementos ListaUsuarioANotificar + 1
                //int l = ListaUsuarioANotificar.Count;
                //string[] usuarios = new string[l + 1];
                //int c = 0;

                //// Se itera la lista y se agregan a la lista a notificar
                //foreach (objUsuario usuario in ListaUsuarioANotificar)
                //{
                //    usuarios[c] = usuario.Correo;
                //    c++;
                //}

                //// Se agrega al vector el usuario logueado para ser notificado
                //usuarios[c] = User.Correo;

                //// Vector con archivos adjuntados
                //string[] archivos = new string[ListaArchivos.Count];
                //int i = 0;

                //foreach (var item in ListaArchivos)
                //{
                //    archivos[i] = item.ruta;
                //    i++;
                //}
                //IsEnableEditor = false;

                ////Ejecutamos el método para enviar un mensaje de espera mientras se lee el archivo.
                //AsyncProgress = await dialog.SendProgressAsync(StringResources.msgEnviandoCorreo, "");

                ////DO_PathMail respuesta = await SO_Email.SendEmailWithAttachment(User.Pathnsf, usuarios, Title, BodyEmail, archivos);
                //DO_PathMail respuesta = new DO_PathMail();
                //respuesta.respuesta= SO_Email.SendEmailLotusCustom(User.Pathnsf, usuarios, Title, BodyEmail);

                ////Ejecutamos el método para cerrar el mensaje de espera.
                //await AsyncProgress.CloseAsync();

                //IsEnableEditor = true;

                //DialogService dialogService = new DialogService();

                //// Se oculta editor de texto
                //IsEnableEditor = false;

                //if (respuesta.respuesta)
                //{
                //    await dialogService.SendMessage(StringResources.ttlAlerta, respuesta.rutamail);
                //}
                //else
                //{
                //    if (respuesta.rutamail == StringResources.msgDeseasConfigCorreo)
                //    {
                //        //Configuramos las opciones del mesaje de pregunta.
                //        MetroDialogSettings settings = new MetroDialogSettings();
                //        settings.AffirmativeButtonText = StringResources.lblYes;
                //        settings.NegativeButtonText = StringResources.lblNo;

                //        //Preguntamos al usuario si lo quiere configurar en estos momentos.
                //        MessageDialogResult resultMSG = await dialog.SendMessage(StringResources.ttlAtencion, StringResources.msgConfiguracionCorreo, settings, MessageDialogStyle.AffirmativeAndNegative, "Servicio de Correo");

                //        //Verificamos la respuesta del usuario, si es afirmativa iniciamos el proceso de configuración.
                //        if (resultMSG == MessageDialogResult.Affirmative)
                //        {
                //            settings = new MetroDialogSettings();
                //            settings.AffirmativeButtonText = StringResources.ttlOkEntiendo;

                //            await dialog.SendMessage(User.Nombre + StringResources.msgParaTuInf, StringResources.msgProcesoConfiguracion);

                //            ProgressDialogController AsyncProgressConfigEmail;

                //            AsyncProgressConfigEmail = await dialog.SendProgressAsync(StringResources.ttlEspereUnMomento + User.Nombre + "...", StringResources.msgEstamosConfigurando);

                //            ConfigEmailViewModel configEmail = new ConfigEmailViewModel(User);

                //            // Se reciben valores de las 2 propiedades del objeto
                //            DO_PathMail respuestaConfigEmail = await configEmail.setEmail();

                //            await AsyncProgressConfigEmail.CloseAsync();

                //            if (respuestaConfigEmail.respuesta)
                //            {
                //                // Actualizamos el path de usuario en la misma sesión
                //                User.Pathnsf = respuestaConfigEmail.rutamail;

                //                // M
                //                await dialog.SendMessage(StringResources.msgPerfecto + User.Nombre, StringResources.msgCuentaConfigurada);

                //                //enviarCorreo();
                //                l = ListaUsuarioANotificar.Count;
                //                usuarios = new string[l + 1];
                //                c = 0;

                //                // Se itera la lista y se agregan a la lista a notificar
                //                foreach (objUsuario usuario in ListaUsuarioANotificar)
                //                {
                //                    usuarios[c] = usuario.Correo;
                //                    c++;
                //                }

                //                // Se agrega al vector el usuario logueado para ser notificado
                //                usuarios[c] = User.Correo;

                //                // Vector con archivos adjuntados
                //                archivos = new string[ListaArchivos.Count];
                //                i = 0;

                //                foreach (var item in ListaArchivos)
                //                {
                //                    archivos[i] = item.ruta;
                //                    i++;
                //                }
                //                IsEnableEditor = false;

                //                //Ejecutamos el método para enviar un mensaje de espera mientras se lee el archivo.
                //                AsyncProgress = await dialog.SendProgressAsync(StringResources.msgEnviandoCorreo, "");

                //                //respuesta = await SO_Email.SendEmailWithAttachment(User.Pathnsf, usuarios, Title, BodyEmail, archivos);
                //                respuesta.respuesta =  SO_Email.SendEmailLotusCustom(User.Pathnsf, usuarios, Title, BodyEmail, archivos);

                //                //Ejecutamos el método para cerrar el mensaje de espera.
                //                await AsyncProgress.CloseAsync();

                //                IsEnableEditor = true;

                //                dialogService = new DialogService();

                //                // Se oculta editor de texto
                //                IsEnableEditor = false;

                //                if (respuesta.respuesta)
                //                {
                //                    await dialogService.SendMessage(StringResources.ttlAlerta, respuesta.rutamail);
                //                }
                //            }
                //            else
                //            {
                //                await dialog.SendMessage(StringResources.ttlOcurrioError, StringResources.msgErrorVincular);
                //            }
                //        }
                //    }
                //}

                //// Se muestra editor de texto
                //IsEnableEditor = true;

                ////Obtenemos la pantalla actual, y casteamos para que se tome como tipo MetroWindow.
                //var window = System.Windows.Application.Current.Windows.OfType<MetroWindow>().LastOrDefault();

                ////Verificamos que la pantalla sea diferente de nulo.
                //if (window != null)
                //{
                //    //Cerramos la pantalla
                //    window.Close();
                //}
            }
        }