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; } }
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; } } }