Beispiel #1
0
 internal HiddenFacade()
 {
     generalDAO = new GeneralDAO();
 }
        /// <summary>
        /// Karşılaştırma, Eşleştirme işlemleri bu metot içerisinde yapılıyor
        /// </summary>
        private void compareOperation()
        {
            Stopwatch watch = new Stopwatch();

            watch.Start();

            try
            {
                int FirmListCount = FirmList.Count;

                #region web'ten alınan firm listesindeki veriler karsilastirma islemi icin duzenleniyor

                Parallel.For(0, FirmListCount, i =>
                {
                    String telNo = FirmList[i].firmPhone;
                    String mail  = FirmList[i].firmMail;

                    if (!String.IsNullOrEmpty(mail))
                    {
                        mail = Regex.Replace(mail, " ", "");
                        FirmList[i].firmMail = mail;
                    }

                    telNo = Regex.Replace(telNo, " ", "");
                    FirmList[i].firmPhone = telNo;
                });

                #endregion

                //Datatable column ayarlari
                configDataTable();

                //FirmList'ten distinct bir Enumerable collection elde ediliyor
                IEnumerable <Firm> firmList = FirmList.AsParallel().GroupBy(o => new { o.firmName, o.firmPhone, o.firmFax, o.firmMail, o.firmWebSite })
                                              .Select(o => o.FirstOrDefault());

                FirmList = null; //Distinct olmayan liste alanı serbest bırakılıyor

                if (firmList != null)
                {
                    foreach (var item in firmList)
                    {
                        var row = table.NewRow();

                        row[0] = item.firmName;
                        row[1] = item.firmPhone;
                        row[2] = item.firmFax;
                        row[3] = item.firmMail;
                        row[4] = item.firmWebSite;

                        table.Rows.Add(row);
                    }

                    Console.WriteLine("DataTable'a veriler başarıyla yüklendi");

                    Console.WriteLine("DataTable'da bulunan kayiy sayisi {0}", table.Rows.Count);



                    //Firmaların tel ve maillerini eşleştiren proc
                    string mappingFirmsProc = "dbo.sp_mappingfirms";

                    //Eşleşmeyenleri bulan proc
                    string unmatchedFirmsProc = "dbo.sp_unmatchedfirms";

                    GeneralDAO cmd = new GeneralDAO();
                    cmd.executeProcedureWithTableParam(table, mappingFirmsProc);
                    cmd.executeProcedureWithTableParam(table, unmatchedFirmsProc);
                }
            }
            catch (Exception e)
            {
                PrintConsole.LOG(e.StackTrace, e.Message);
            }
            finally
            {
                watch.Stop();
                Console.WriteLine("Karsilastirma islemi {0} saniyede tamamlandi", watch.Elapsed.TotalSeconds.ToString());
            }
        }