예제 #1
0
        private void CampactaZip(belEmailContador item, bool Verifica)
        {
            try
            {
                List<string> lCaminhos = new List<string>();
                lCaminhos.Add(item.sCaminhoEnviado);
                lCaminhos.Add(item.sCaminhoCancelado);
                lCaminhos.Add(item.sCaminhoCCe);
                Util.CompactaArquivosXml(lCaminhos.ToArray(), item.sCaminhoZip);


                #region Compacta Enviados

                DirectoryInfo dinfoArq = new DirectoryInfo(item.sCaminhoEnviado);
                if (dinfoArq.Exists)
                {
                    foreach (FileSystemInfo arq in dinfoArq.GetFileSystemInfos())
                    {
                        if (Verifica)
                        {
                            List<XElement> xListElem = item.xmlArqEnviados.Descendants("Email").Elements("Envio").Where(c => c.Attribute("Tipo").Value.ToString() == "enviados").ToList();
                            if (xListElem.Where(x => x.Value.ToString() == arq.Name).Count() == 0)
                            {
                                item.xmlArqEnviados.Element("Email").Add(new XElement("Envio", new XAttribute("Tipo", "enviados"), arq.Name));
                            }
                        }
                    }
                }

                #endregion

                #region Compacta arquivos Cancelados
                dinfoArq = new DirectoryInfo(item.sCaminhoCancelado);
                if (dinfoArq.Exists)
                {
                    foreach (FileSystemInfo arq in dinfoArq.GetFileSystemInfos())
                    {
                        if (Verifica)
                        {
                            List<XElement> xListElem = item.xmlArqEnviados.Descendants("Email").Elements("Envio").Where(c => c.Attribute("Tipo").Value.ToString() == "cancelados").ToList();
                            if (xListElem.Where(x => x.Value.ToString() == arq.Name.ToString()).Count() == 0)
                            {
                                item.xmlArqEnviados.Element("Email").Add(new XElement("Envio", new XAttribute("Tipo", "cancelados"), arq.Name));
                            }
                        }
                    }
                }
                #endregion

                #region Compacta CCe
                if (!String.IsNullOrEmpty(item.sCaminhoCCe))
                {
                    dinfoArq = new DirectoryInfo(item.sCaminhoCCe);
                    if (dinfoArq.Exists)
                    {
                        foreach (FileSystemInfo arq in dinfoArq.GetFileSystemInfos())
                        {
                            if (Verifica)
                            {
                                List<XElement> xListElem = item.xmlArqEnviados.Descendants("Email").Elements("Envio").Where(c => c.Attribute("Tipo").Value.ToString() == "cce").ToList();
                                if (xListElem.Where(x => x.Value.ToString() == arq.Name.ToString()).Count() == 0)
                                {
                                    item.xmlArqEnviados.Element("Email").Add(new XElement("Envio", new XAttribute("Tipo", "cce"), arq.Name));
                                }
                            }
                        }
                    }
                }
                #endregion

                item.xmlArqEnviados.Save(item.dinfo.FullName + "\\" + item.sNomeArquivo.Replace("zip", "xml"));


            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #2
0
        private void RefreshGrid()
        {
            DirectoryInfo dPastaEnviados = new DirectoryInfo(Pastas.ENVIADOS);
            int icount = 0;
            objListaEmailContador = new List<belEmailContador>();

            foreach (FileSystemInfo pasta in dPastaEnviados.GetFileSystemInfos())
            {
                if (Acesso.NM_RAMO == Acesso.BancoDados.TRANSPORTE)
                {
                    #region Transporte
                    if (pasta.Name.Length == 5)
                    {
                        belEmailContador objEmailCont = new belEmailContador();
                        objEmailCont.iId = icount++;
                        objEmailCont.sMes = pasta.Name.Substring(0, 2);
                        objEmailCont.sAno = "20" + pasta.Name.Substring(3, 2);
                        objEmailCont.sNomeArquivo = DateTime.Now.Date.ToString("yyMMdd") + ".zip";
                        objEmailCont.sCaminhoEnviado = pasta.FullName;
                        objEmailCont.sCaminhoCancelado = Pastas.CANCELADOS + "\\" + pasta.Name;
                        DirectoryInfo dinfoEnviados = new DirectoryInfo(objEmailCont.sCaminhoEnviado);
                        DirectoryInfo dinfoCancelados = new DirectoryInfo(objEmailCont.sCaminhoCancelado);
                        objEmailCont.iFaltantes = (dinfoEnviados.Exists ? dinfoEnviados.GetFileSystemInfos().Count() : 0) + (dinfoCancelados.Exists ? dinfoCancelados.GetFileSystemInfos().Count() : 0);


                        string sCaminho = Pastas.ENVIADOS + "\\Contador_xml\\" + pasta.Name + daoUtil.GetDateServidor().Date.Day.ToString().PadLeft(2, '0') + ".xml";
                        if (File.Exists(sCaminho))
                        {
                            XDocument xmlDoc = XDocument.Load(sCaminho);
                            objEmailCont.xmlArqEnviados = xmlDoc;
                            //Count nos arquivos que já foram enviados q estão no Xml.
                            objEmailCont.iEnviadoContador = xmlDoc.Descendants("Email").Elements("Envio").Count();
                        }
                        else
                        {
                            objEmailCont.xmlArqEnviados = new XDocument();
                            objEmailCont.xmlArqEnviados.Add(new XElement("Email"));
                            objEmailCont.xmlArqEnviados.Save(sCaminho);
                        }

                        objListaEmailContador.Add(objEmailCont);
                    }
                    #endregion
                }
                else if (pasta.Name.Length == 4)
                {
                    #region Outros Ramos
                    belEmailContador objEmailCont = new belEmailContador();
                    objEmailCont.iId = icount++;
                    objEmailCont.sMes = pasta.Name.Substring(2, 2);
                    objEmailCont.sAno = "20" + pasta.Name.Substring(0, 2);
                    objEmailCont.sNomeArquivo = DateTime.Now.Date.ToString("yyMMdd") + ".zip"; ;

                    objEmailCont.sCaminhoEnviado = pasta.FullName;
                    objEmailCont.sCaminhoCancelado = Pastas.CANCELADOS + "\\" + pasta.Name;
                    objEmailCont.sCaminhoCCe = Pastas.CCe + "\\" + pasta.Name;

                    DirectoryInfo dinfoEnviados = new DirectoryInfo(objEmailCont.sCaminhoEnviado);
                    DirectoryInfo dinfoCancelados = new DirectoryInfo(objEmailCont.sCaminhoCancelado);
                    DirectoryInfo dCartaCorrecao = new DirectoryInfo(objEmailCont.sCaminhoCCe);

                    objEmailCont.iFaltantes = (dinfoEnviados.Exists ? dinfoEnviados.GetFileSystemInfos().Count() : 0) + (dinfoCancelados.Exists ? dinfoCancelados.GetFileSystemInfos().Count() : 0) +
                                              (dCartaCorrecao.Exists ? dCartaCorrecao.GetFileSystemInfos().Count() : 0);

                    if (objEmailCont.iFaltantes == 0)
                    {
                        objEmailCont.Enviado = true;
                    }

                    string sCaminho = Pastas.ENVIADOS + "\\Contador_xml\\" + pasta.Name + daoUtil.GetDateServidor().Date.Day.ToString().PadLeft(2, '0') + ".xml";
                    if (File.Exists(sCaminho))
                    {
                        XDocument xmlDoc = XDocument.Load(sCaminho);
                        objEmailCont.xmlArqEnviados = xmlDoc;
                        //Count nos arquivos que já foram enviados q estão no Xml.
                        objEmailCont.iEnviadoContador = xmlDoc.Descendants("Email").Elements("Envio").Count();
                    }
                    else
                    {
                        objEmailCont.xmlArqEnviados = new XDocument();
                        objEmailCont.xmlArqEnviados.Add(new XElement("Email"));
                        objEmailCont.xmlArqEnviados.Save(sCaminho);
                    }

                    objListaEmailContador.Add(objEmailCont);
                    #endregion
                }
            }
            dgvItens.Rows.Clear();
            belEmailContadorBindingSource.DataSource = objListaEmailContador.OrderByDescending(c => c.iId);

            foreach (belEmailContador obj in objListaEmailContador)
            {
                if (obj.iFaltantes == 0)
                {
                    obj.Enviado = true;
                }
                else
                {
                    obj.Enviado = false;
                }
            }
        }