コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }