Ejemplo n.º 1
0
 void GetDataCompany()
 {
     this.Invoke((MethodInvoker)(() =>
                                 WriteLogCompany(String.Format("loading company... "))));
     CompanyDataSetTableAdapters.CompanyTableAdapter company = new CompanyDataSetTableAdapters.CompanyTableAdapter
     {
         Connection = { ConnectionString = _productConnectionString }
     };
     if (tblCompany == null || tblCompany.Rows.Count <= 0)
     {
         tblCompany = company.GetData();
     }
     this.Invoke((MethodInvoker) delegate
     {
         this.dataGridViewListCompany.DataSource = tblCompany;
     });
     if (listWebsite == null)
     {
         listWebsite = new List <string>();
         listWebsite.Add("");
         foreach (DataRow row in tblCompany.Rows)
         {
             string domain = row["Domain"].ToString();
             domain = domain.Replace("www.", string.Empty);
             listWebsite.Add(domain);
         }
     }
     this.Invoke((MethodInvoker) delegate
     {
         this.txtCompanyName.DataSource = listWebsite;
     });
     this.Invoke((MethodInvoker)(() =>
                                 WriteLogCompany(String.Format("loaded " + tblCompany.Rows.Count + " company complete... "))));
 }
Ejemplo n.º 2
0
        void DoUpdateSolrIndex()
        {
            this.Invoke((MethodInvoker)(() =>
                                        WriteLog(String.Format("Start download List company"))));
            var companyTableAdapter = new CompanyDataSetTableAdapters.CompanyTableAdapter();

            companyTableAdapter.Connection.ConnectionString = _productConnectionString;
            var companyDataTable = companyTableAdapter.GetAllMerchants();
            var numCompany       = companyDataTable.Count;

            this.Invoke((MethodInvoker)(() =>
                                        WriteLog(String.Format("Downloaded {0} company", numCompany))));
            var remainCompanyList =
                solrIndexer.SolrClient.GetAllCompany().Where(x => x.Value > 0).Select(x => x.Key).Select(long.Parse).ToList();

            int companyIndex = 0;

            //lazada
            foreach (var companyDataRow in companyDataTable)
            {
                try
                {
                    companyIndex++;
                    CompanyDataSet.CompanyRow tmpCompanyDataRow = companyDataRow;
                    int index = companyIndex;
                    Invoke((MethodInvoker)(() =>
                                           WriteLog(String.Format("Start Update company {0} ({1}/{2})", tmpCompanyDataRow.Domain, index, numCompany))));
                    remainCompanyList.Remove(companyDataRow.ID);
                    int tryCount = 0;
                    while (true)
                    {
                        var numProducts = solrIndexer.UpdateAllProductOfMerchant(companyDataRow.ID, companyDataRow.Domain);
                        tryCount++;
                        if (numProducts >= 0)
                        {
                            Invoke((MethodInvoker)(() =>
                                                   WriteLog(String.Format("Updated company {0} - {1} products -- {2}/{3}", tmpCompanyDataRow.Domain,
                                                                          numProducts, index, numCompany))));
                            break;
                        }
                        else
                        {
                            Invoke((MethodInvoker)(() =>
                                                   WriteLog(String.Format("ERROR!!!! Update Company {0} failed - Error code {1}", tmpCompanyDataRow.Domain,
                                                                          numProducts))));
                            if (tryCount >= 4)
                            {
                                break;
                            }
                            Thread.Sleep(30000);
                        }
                    }
                }
                catch (SqlException sqlex)
                {
                    WriteLog("Do update Solr Products", sqlex);
                }
                catch (SolrConnectionException solrConnEx)
                {
                    WriteLog("Do update Solr Products", solrConnEx);
                }
            }
            try
            {
                remainCompanyList.Remove(ID_WEBSOSANH);
                foreach (var companyId in remainCompanyList)
                {
                    solrIndexer.SolrClient.DeleteByCompanyId(companyId);
                }
                solrIndexer.Commit();
                solrIndexer.Optimize();
                this.Invoke((MethodInvoker)(() => WriteLog("Commit and optimize...")));
            }
            catch (Exception ex)
            {
                WriteLog("Do update Solr Products", ex);
            }
            companyDataTable.Dispose();
            companyTableAdapter.Dispose();
        }