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