/// <summary>
 /// MatchedFirm Listeye Ekle
 /// </summary>
 /// <param name="m_Firm"></param>
 /// <returns></returns>
 private void AddMatchedFirm(MatchedFirm m_Firm)
 {
     if (m_Firm != null)
     {
         list_MatchedFirms.Add(m_Firm);
     }
 }
 public void Add(MatchedFirm firm)
 {
     if (firm != null)
     {
         if (!operation.isExists(firm))
         {
             operation.insert(firm);
         }
     }
 }
        /// <summary>
        /// Karşılaştırma, Eşleştirme işlemleri bu metot içerisinde yapılıyor
        /// </summary>
        private void UnmatchedPhonesAndSaveMatches()
        {
            Stopwatch watch = new Stopwatch();

            try
            {
                watch.Start();
                int           FirmListCount  = FirmList.Count;
                List <string> telListFromWeb = new List <string>();

                #region web'ten alınan firm listesindeki telefon numaraları listeye alınıyor, unique list
                Parallel.For(0, FirmListCount, i =>
                {
                    String telNo = FirmList[i].firmPhone;
                    telNo        = Regex.Replace(telNo, " ", "");
                    telListFromWeb.Add(telNo);
                    FirmList[i].firmPhone = telNo;
                });
                #endregion

                Console.WriteLine("Web adreslerinden cekilen Firma sayisi {0}", telListFromWeb.Count);
                Console.WriteLine("OSB-DB'den cekilen Telefon Numarasi sayisi {0}", TelNumberListFromDB.Count);
                Console.WriteLine("OSB-DB'den cekilen Email sayisi {0}", EmailListFromDB.Count);

                BusinessOperations.CompareOperations.CompareFirmInfos compObj = new BusinessOperations.CompareOperations.CompareFirmInfos();

                #region Karşılaştırma işlemi
                Parallel.For(0, telListFromWeb.Count, i =>
                {
                    String item_FirmTel = telListFromWeb[i];

                    Console.WriteLine("{0} Firma Karşılaştırma İşlemi", i);

                    if (!String.IsNullOrEmpty(item_FirmTel))
                    {
                        //webten gelen telNo ile DB'den gelen telNo eşleşirse,geriye müşteriKodu döner.
                        decimal _MusteriKodu_matchedWithPhoneNumber = compObj.ComparePhoneNumber(item_FirmTel, ref TelNumberListFromDB);



                        //-1 değilse müşteriKodu'dur ve telNolar eşleşmiştir.
                        if (_MusteriKodu_matchedWithPhoneNumber != -1)
                        {
                            //Webten alınan Firma listesinden mail adres
                            string itemMail = GetMailByTelFromFirmList(item_FirmTel);

                            itemMail = Regex.Replace(itemMail, " ", "");


                            Firm firm = GetFirmByTelNumber(item_FirmTel);
                            MatchedFirm _matchedFirm = new MatchedFirm();

                            if (firm != null)
                            {
                                _matchedFirm = new MatchedFirm
                                {
                                    Unvan       = firm.firmName,
                                    Tel         = firm.firmPhone,
                                    Fax         = firm.firmFax,
                                    Mail        = firm.firmMail,
                                    Website     = firm.firmWebSite,
                                    MusteriKodu = _MusteriKodu_matchedWithPhoneNumber
                                };
                            }


                            //Mail adres alanı boş değilse,eşleşme var mı diye bak

                            if (!String.IsNullOrEmpty(itemMail))
                            {
                                if (isExistsInEmailList(itemMail, _MusteriKodu_matchedWithPhoneNumber))
                                {
                                    //tel ve mail eşleşmişse status=11
                                    _matchedFirm.TelMailStatus = "11";
                                }
                                else
                                {
                                    //sadece tel eşleşmişse statsu = 10
                                    _matchedFirm.TelMailStatus = "10";
                                }
                            }
                            else
                            {
                                //mail yok ve tel ile eşleşmişse status=10
                                _matchedFirm.TelMailStatus = "10";
                            }

                            AddMatchedFirm(_matchedFirm);
                        }
                        else
                        {
                            Firm firm = GetFirmByTelNumber(item_FirmTel);

                            AddUnmatchedFirm(new UnmatchedFirm
                            {
                                Unvan   = firm.firmName,
                                Tel     = firm.firmPhone,
                                Mail    = firm.firmMail,
                                Fax     = firm.firmFax,
                                Website = firm.firmWebSite
                            });
                        }
                    }
                });
                #endregion
            }
            catch (Exception e)
            {
                PrintConsole.LOG(e.StackTrace, e.Message);
            }
            finally
            {
                watch.Stop();
                Console.WriteLine("Karsilastirma islemi {0} dkda tamamlandi sn {1}", watch.Elapsed.TotalMinutes.ToString(), watch.Elapsed.TotalSeconds.ToString());
            }
        }
Beispiel #4
0
        /// <summary>
        /// Verilen MatchedFirm nesnesini OSBDB.MatchedFirm tablosuna kayıt eder
        /// </summary>
        /// <param name="firm"></param>
        public void SaveData(MatchedFirm firm)
        {
            MatchedFirmDAO dao = new MatchedFirmDAO();

            dao.Add(firm);
        }