Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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);
        }