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()); } }
/// <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(); //} } }