public int ReprocessarCdr() { DETRAF.DAL.CdrDal objCdrDal = new DETRAF.DAL.CdrDal(); DataTable dt = objCdrDal.ConsultarEotCdr(); int i = 0; int id; DataTable dtEotLocOrigem; DataTable dtEotLocDestino; string Clid_novo; string Dst_novo; string strDateTime; string ano; string mes; string dia; DateTime DateCdr; foreach (DataRow dr in dt.Rows) { id = Convert.ToInt32(dr["id"].ToString()); Clid = dr["clid"].ToString(); Dst = dr["dst"].ToString(); Billsec = Convert.ToInt32(dr["billsec"]); Data = dr["data"].ToString(); Hora = dr["hora"].ToString(); Clid_novo = Clid; Dst_novo = Dst; dtEotLocOrigem = ObterEotLocalidade(Clid_novo); EotOrigem = 0; LocalidadeOrigem = ""; foreach (DataRow dr2 in dtEotLocOrigem.Rows) { EotOrigem = Convert.ToInt32(dr2["eot"].ToString()); LocalidadeOrigem = dr2["localidade"].ToString(); } dtEotLocDestino = ObterEotLocalidade(Dst_novo); EotDestino = 0; LocalidadeDestino = ""; foreach (DataRow dr3 in dtEotLocDestino.Rows) { EotDestino = Convert.ToInt32(dr3["eot"].ToString()); LocalidadeDestino = dr3["localidade"].ToString(); } //Verificação de Localidades e Tipo de Ligações (Entrante e Sainte) if (LocalidadeOrigem == "SPO" && LocalidadeDestino == "SPO" && (EotOrigem.ToString() == "829" || EotDestino.ToString() == "829")) { ModalidadeLigacao = "L"; if (EotOrigem.ToString() == "829") { Entrante = 0; Sainte = 1; } else { Entrante = 1; Sainte = 0; } } else if (LocalidadeDestino == "INTL") { ModalidadeLigacao = "I"; if (EotOrigem.ToString() == "829") { Entrante = 0; Sainte = 1; } else { Entrante = 1; Sainte = 0; } } else { ModalidadeLigacao = "N"; if (EotOrigem.ToString() == "829") { Entrante = 0; Sainte = 1; } else if (EotDestino.ToString() == "829") { Entrante = 1; Sainte = 0; } else if (Dst == "02910329") { Entrante = 1; Sainte = 0; } else { Entrante = 1; Sainte = 1; } } TipoLigacao = "N"; if (Dst_novo.StartsWith("90")) { TipoLigacao = "A"; } //strDateTime = "1992-10-10 12:15:12"; ano = Data.Substring(0, 4); mes = Data.Substring(4, 2); dia = Data.Substring(6, 2); strDateTime = ano + "-" + mes + "-" + dia + " " + Hora; DateCdr = DateTime.Parse(strDateTime); objCdrDal.AtualizarCdr(id, Clid_novo, EotOrigem, LocalidadeOrigem, Dst_novo, EotDestino, LocalidadeDestino, Billsec, Data, Hora, DateCdr, Entrante, Sainte, TipoLigacao, ModalidadeLigacao); } objCdrDal = null; return(i); }
public bool ProcessaCdr(string caminho) { bool erroMetodo = true; string sLine = ""; string Clid_novo; string Dst_novo; string[] campo; string strDateTime; string ano; string mes; string dia; StreamReader objReader = new StreamReader(caminho); DataTable dtEotLocOrigem; DataTable dtEotLocDestino; DateTime DateCdr; DETRAF.LOGGER.Logger objLogger = new DETRAF.LOGGER.Logger(); DETRAF.DAL.CdrDal objCdrDal = new DETRAF.DAL.CdrDal(); while (sLine != null) { sLine = objReader.ReadLine(); if (!string.IsNullOrEmpty(sLine)) { campo = sLine.Split(new char[] { ';' }); try { Clid = campo[0]; Dst = campo[1]; Billsec = Convert.ToInt32(campo[2]); Data = campo[3]; Hora = campo[4]; /*SentidoLigacao = campo[5]; * TipoLigacao = campo[6]; * ModalidadeLigacao = campo[7];*/ } catch (IndexOutOfRangeException) { throw new InvalidCastException("Arquivo fora do padrão!"); } Clid_novo = Clid; Dst_novo = Dst; dtEotLocOrigem = ObterEotLocalidade(Clid_novo); EotOrigem = 0; LocalidadeOrigem = ""; foreach (DataRow dr in dtEotLocOrigem.Rows) { EotOrigem = Convert.ToInt32(dr["eot"].ToString()); LocalidadeOrigem = dr["localidade"].ToString(); } dtEotLocDestino = ObterEotLocalidade(Dst_novo); EotDestino = 0; LocalidadeDestino = ""; foreach (DataRow dr in dtEotLocDestino.Rows) { EotDestino = Convert.ToInt32(dr["eot"].ToString()); LocalidadeDestino = dr["localidade"].ToString(); } //Verificação de Localidades e Tipo de Ligações (Entrante e Sainte) if (LocalidadeOrigem == "SPO" && LocalidadeDestino == "SPO" && (EotOrigem.ToString() == "829" || EotDestino.ToString() == "829")) { ModalidadeLigacao = "L"; if (EotOrigem.ToString() == "829") { Entrante = 0; Sainte = 1; } else { Entrante = 1; Sainte = 0; } } else if (LocalidadeDestino == "INTL") { ModalidadeLigacao = "I"; if (EotOrigem.ToString() == "829") { Entrante = 0; Sainte = 1; } else { Entrante = 1; Sainte = 0; } } else { ModalidadeLigacao = "N"; if (EotOrigem.ToString() == "829") { Entrante = 0; Sainte = 1; } else if (EotDestino.ToString() == "829") { Entrante = 1; Sainte = 0; } else if (Dst == "02910329") { Entrante = 1; Sainte = 0; } else { Entrante = 1; Sainte = 1; } } TipoLigacao = "N"; if (Dst_novo.StartsWith("90")) { TipoLigacao = "A"; } //strDateTime = "1992-10-10 12:15:12"; ano = Data.Substring(0, 4); mes = Data.Substring(4, 2); dia = Data.Substring(6, 2); strDateTime = ano + "-" + mes + "-" + dia + " " + Hora; DateCdr = DateTime.Parse(strDateTime); objCdrDal.GravarCdr(Clid_novo, EotOrigem, LocalidadeOrigem, Dst_novo, EotDestino, LocalidadeDestino, Billsec, Data, Hora, DateCdr, Entrante, Sainte, TipoLigacao, ModalidadeLigacao); } } objReader.Close(); objReader.Dispose(); objLogger = null; objCdrDal = null; return(erroMetodo); }