private void ConsultaMensajesCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error == null) { viewModel.ListaMensajes = new List <VMBuzon>(); if (e.Result != null) { foreach (Message mensaje in e.Result as IList <Message> ) { string Cuerpo = mensaje.Payload.Parts.FirstOrDefault(x => x.MimeType == "text/plain").Body.Data; string CuerpoDecodificado = Encoding.UTF8.GetString(ServicioGmail.FromBase64ForUrlString(Cuerpo)); string Codigo = CuerpoDecodificado.IndexOf("[código]") > 0 ? CuerpoDecodificado.Substring(CuerpoDecodificado.IndexOf("[código]") + 8, 64) : String.Empty; DateTime epoca = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); DateTime fecha = epoca.AddMilliseconds((double)mensaje.InternalDate); DateTime fechaIntermedia = DateTimeOffset.FromUnixTimeMilliseconds((long)mensaje.InternalDate).UtcDateTime; string Subject = mensaje.Payload.Headers.FirstOrDefault(k => k.Name == "Subject").Value; viewModel.ListaMensajes.Add(new VMBuzon { Asunto = Subject, FechaHora = fecha.ToString("dd/MM/yyyy HH:mm"), Mensaje = CuerpoDecodificado, Codigo = Codigo }); } } this.DataContext = viewModel; } }
private void ConsultaMensajesDoWork(object sender, DoWorkEventArgs e) { ServicioGmail Servicio = new ServicioGmail(); string asuntos = "subject:Solicitud automática de nuevo asunto con el despacho is:unread"; e.Result = Servicio.GetBandejaPorAsunto(asuntos); }