public static PhoneArea GetPhoneAreaInfo(string mobile)
        {
            PhoneArea phoneAreaInfo = null;

            if (!string.IsNullOrEmpty(mobile) && mobile.Length > 7)
            {
                try
                {
                    SystemPhoneAreaWrapper phoneArea = SystemPhoneAreaWrapper.FindByPhonePrefix(mobile.Substring(0, 7));

                    if (phoneArea == null)
                    {
                        return(null);
                    }

                    phoneAreaInfo = new PhoneArea();
                    phoneAreaInfo.OperatorType = phoneArea.OperatorType;
                    phoneAreaInfo.Province     = phoneArea.Province;
                    phoneAreaInfo.City         = phoneArea.City;
                }
                catch (Exception ex)
                {
                    Logger.Error(ex.Message);
                }
            }

            return(phoneAreaInfo);
        }
Exemple #2
0
        protected static Dictionary <string, PhoneArea> GetAllPhoneDictionary()
        {
            List <SystemPhoneAreaWrapper> phoneAreaWrappers = SystemPhoneAreaWrapper.FindAll();

            Dictionary <string, PhoneArea> allPhoneDictionar = new Dictionary <string, PhoneArea>();

            foreach (SystemPhoneAreaWrapper phoneAreaWrapper in phoneAreaWrappers)
            {
                PhoneArea phoneArea = new PhoneArea();
                phoneArea.City         = phoneAreaWrapper.City;
                phoneArea.Province     = phoneAreaWrapper.Province;
                phoneArea.OperatorType = phoneAreaWrapper.OperatorType;
                allPhoneDictionar.Add(phoneAreaWrapper.PhonePrefix, phoneArea);
            }

            return(allPhoneDictionar);
        }
        private void bgwDataToNoSQL_DoWork(object sender, DoWorkEventArgs doWorkEventArg)
        {
            List <SystemPhoneAreaWrapper> phoneAreaWrappers = SystemPhoneAreaWrapper.FindAll();

            rowCounts = phoneAreaWrappers.Count;

            string title = string.Format("正在从数据库导入手机号段信息,共(" + rowCounts.ToString() + "条).");

            SetTitle(title, rowCounts);

            var client = new MongoClient(Program.NoSQL_DBConnString);

            var server = client.GetServer();

            var database = server.GetDatabase(Program.NoSQL_DbName);

            var collection = database.GetCollection(Program.NoSQL_CollectionName);

            int i = 0;

            foreach (SystemPhoneAreaWrapper phoneAreaWrapper in phoneAreaWrappers)
            {
                i++;

                if (bgwDataToNoSQL.CancellationPending)
                {
                    break;
                }

                bgwDataToNoSQL.ReportProgress(i, rowCounts);

                ////var query = Query<PhoneArea>.EQ(e => e.PhonePrefix, phoneAreaWrapper.PhonePrefix);

                ////if (collection.FindOne(query) != null)
                ////{
                ////    this.Invoke(new Action(delegate()
                ////    {
                ////        this.lblProcessProgress.Text = "号码数据导入中( " + i.ToString() + "/" + rowCounts.ToString() + ")。。。";
                ////    }));

                ////    continue;
                ////}


                var entity = new PhoneArea()
                {
                    PhonePrefix  = phoneAreaWrapper.PhonePrefix,
                    Province     = phoneAreaWrapper.Province,
                    City         = phoneAreaWrapper.City,
                    OperatorType = phoneAreaWrapper.OperatorType,
                };

                MongoInsertOptions mongoInsert = new MongoInsertOptions()
                {
                    WriteConcern = WriteConcern.Unacknowledged
                };

                rowSuccessCounts++;

                this.Invoke(new Action(delegate()
                {
                    this.lblProcessProgress.Text = "号码数据导入中( " + i.ToString() + "/" + rowCounts.ToString() + ")。。。";
                }));

                collection.Save(entity, mongoInsert);
            }
        }
        private void bgwLoadPhoneData_DoWork(object sender, DoWorkEventArgs e)
        {
            string loadFile = e.Argument as string;

            int fileCount = File.ReadAllLines(loadFile).Length;


            using (CsvReader csv = new CsvReader(new StreamReader(loadFile, Encoding.UTF8), false))
            {
                string title = string.Format("正在从文本文件“{0}”导入手机号段信息,共(" + fileCount.ToString() + "条).", Path.GetFileName(loadFile));

                SetTitle(title, fileCount);

                rowCounts = fileCount;

                //只进的游标读取

                HashSet <string> phonePrefixs = SystemPhoneAreaWrapper.GetAllPhonePrefix();

                while (csv.ReadNextRecord())
                {
                    if (bgwLoadPhoneData.CancellationPending)
                    {
                        break;
                    }

                    try
                    {
                        bgwLoadPhoneData.ReportProgress(Convert.ToInt32(csv[0]), fileCount);

                        string phonePrefix = csv[1];

                        if (string.IsNullOrEmpty(phonePrefix))
                        {
                            rowSuccessCounts++;

                            this.Invoke(new Action(delegate()
                            {
                                this.lblProcessProgress.Text = "号码数据导入中( " + Convert.ToInt32(csv[0]) + "/" + fileCount.ToString() + ")。。。";
                            }));

                            continue;
                        }


                        if (phonePrefixs.Contains(phonePrefix))
                        {
                            rowSuccessCounts++;

                            this.Invoke(new Action(delegate()
                            {
                                this.lblProcessProgress.Text = "号码数据导入中( " + Convert.ToInt32(csv[0]) + "/" + fileCount.ToString() + ")。。。";
                            }));

                            continue;
                        }

                        SystemPhoneAreaWrapper sytemPhoneArea = new SystemPhoneAreaWrapper();

                        sytemPhoneArea.PhonePrefix = phonePrefix;
                        sytemPhoneArea.Province    = csv[2].Split((" ").ToArray())[0];
                        sytemPhoneArea.City        = csv[2].Split((" ").ToArray())[1];

                        string cardName = csv[3];

                        string   operatorType = "";
                        string   cardType     = "";
                        string[] cardNames    = null;


                        if (cardName.Contains("移动"))
                        {
                            operatorType = "移动";
                            cardNames    = cardName.Split(("移动").ToArray());
                            cardType     = cardNames[cardNames.Length - 1];
                        }
                        else if (cardName.Contains("联通"))
                        {
                            operatorType = "联通";
                            cardNames    = cardName.Split(("联通").ToArray());
                            cardType     = cardNames[cardNames.Length - 1];
                        }
                        else if (cardName.Contains("电信"))
                        {
                            operatorType = "电信";
                            cardNames    = cardName.Split(("电信").ToArray());
                            cardType     = cardNames[cardNames.Length - 1];
                        }

                        sytemPhoneArea.OperatorType = operatorType;
                        sytemPhoneArea.CardType     = cardType;
                        sytemPhoneArea.AreaCode     = csv[4];
                        sytemPhoneArea.ZipCode      = csv[5];

                        SystemPhoneAreaWrapper.Save(sytemPhoneArea);

                        rowSuccessCounts++;

                        this.Invoke(new Action(delegate()
                        {
                            this.lblProcessProgress.Text = "号码数据导入中( " + Convert.ToInt32(csv[0]) + "/" + fileCount.ToString() + ")。。。";
                        }));
                    }
                    catch (Exception ex)
                    {
                    }
                }
            }
        }