public static void InsertAllWebMerchantProductToCache(string connProductString) { try { var startTime = DateTime.Now; //Get List Company var companyTableAdapter = new CompanyTableAdapter() { Connection = { ConnectionString = connProductString } }; var companyDataTable = companyTableAdapter.GetAllCompanies(); for (int rowIndex = 0; rowIndex < companyDataTable.Rows.Count; rowIndex++) { var companyRow = companyDataTable[rowIndex]; var companyID = companyRow.ID; var companyDomain = ""; if (companyRow["Domain"] != DBNull.Value) { companyDomain = companyRow.Domain; } InsertWebMerchantProductToCache(companyID, companyDomain, connProductString); Log.InfoFormat("Insert WebMerchantProductToCache - Company [{0}/{1}]", rowIndex, companyDataTable.Rows.Count); } var totalTime = (DateTime.Now - startTime).TotalSeconds; Log.InfoFormat("Total Time: {0} s", totalTime); } catch (Exception ex) { Log.Error("InsertAllWebMerchantProductToCache Error", ex); } }
protected void Page_Load(object sender, EventArgs e) { if (Null.IsNotNull(Request["q"])) { if (Null.IsNotNull(Session["Login"].ToString())) { Session["Login"] = null; Session["Name"] = null; Response.Redirect("~/signin.aspx"); } } ltlMessage.Text = null; if (!Page.IsPostBack) { ddlPaymentMode.Items.Insert(0, new ListItem("All")); CompanyTableAdapter companyTableAdapter = new CompanyTableAdapter(); DataTable dtCompany = companyTableAdapter.GetDataByStatus("ACTIVE"); ddlCompany.DataValueField = "ID"; ddlCompany.DataTextField = "CompanyName"; ddlCompany.DataSource = dtCompany; ddlCompany.DataBind(); ddlCompany.Items.Insert(0, new ListItem("All")); ddlDoctor.Items.Insert(0, new ListItem("All")); } txtFromDate.Text = DateTime.Now.AddDays(-1).ToString("dd/MMM/yyyy"); txtToDate.Text = DateTime.Now.ToString("dd/MMM/yyyy"); }
private void btnSave_Click(object sender, EventArgs e) { if (!this.ValidateChildren()) { return; } CompanyTableAdapter companyTableAdapter = new CompanyTableAdapter(); CompanyID = (int)companyTableAdapter.InsertQuery(this.tbxName.Text.Trim()); if (CompanyID > 0) { UserLogTableAdapter logTableAdapter = new UserLogTableAdapter(); logTableAdapter.Insert(TypeUtil.Gene, CompanyID.ToString(), MainForm.User.UserID, TypeUtil.EVENT_CREATE, DateTime.Now); this.DialogResult = DialogUtil.AddSuccess(); } else { this.DialogResult = DialogUtil.AddError(); } }
public static void BuildCategory(string connProductString) { try { var productTableAdapter = new ProductTableAdapter { Connection = { ConnectionString = connProductString } }; var companyTableAdapter = new CompanyTableAdapter() { Connection = { ConnectionString = connProductString } }; var companyDataTable = companyTableAdapter.GetAllCompanies(); for (int companyRowIndex = 0; companyRowIndex < companyDataTable.Rows.Count; companyRowIndex++) { var companyRow = companyDataTable[companyRowIndex]; try { var startTime = DateTime.Now; var companyID = companyRow.ID; var productDataTable = productTableAdapter.GetAllProductName(companyID); List <KeyValuePair <long, int> > productCategoryMap = new List <KeyValuePair <long, int> >(); for (int productRowIndex = 0; productRowIndex < productDataTable.Rows.Count; productRowIndex++) { var productRow = productDataTable[productRowIndex]; if (productRow["Name"] == DBNull.Value) { continue; } int categoryID = GetCategory(productRow.Name); if (categoryID >= 0) { productCategoryMap.Add(new KeyValuePair <long, int>(productRow.ID, categoryID)); } if (productCategoryMap.Count >= 1000) { var database = RedisManager.GetRedisServer("redisProductCategory").GetDatabase(0); database.StringSet(productCategoryMap.Select(x => new KeyValuePair <RedisKey, RedisValue>(string.Format(productCategoryKeyFormat, x.Key), x.Value)).ToArray()); productCategoryMap.Clear(); } //Thread.Sleep(10); } if (productCategoryMap.Count > 0) { var database = RedisManager.GetRedisServer("redisProductCategory").GetDatabase(0); database.StringSet(productCategoryMap.Select(x => new KeyValuePair <RedisKey, RedisValue>(string.Format(productCategoryKeyFormat, x.Key), x.Value)).ToArray()); } Log.InfoFormat("Insert MerchantProductCategory - Company [{0}/{1}]. {2} products", companyRowIndex, companyDataTable.Rows.Count, productDataTable.Rows.Count); var totalTime = (DateTime.Now - startTime).TotalSeconds; Log.InfoFormat("Time: {0} s", totalTime); } catch (Exception innerException) { Log.Error("Insert MerchantProductCategory. Company: " + companyRow.ID, innerException); } } } catch (Exception exception) { Log.Error("Insert MerchantProductCategory", exception); } }
public static void BuildNameHash(string connProductString) { try { var productTableAdapter = new ProductTableAdapter { Connection = { ConnectionString = connProductString } }; var companyTableAdapter = new CompanyTableAdapter() { Connection = { ConnectionString = connProductString } }; var companyDataTable = companyTableAdapter.GetAllCompanies(); for (int companyRowIndex = 0; companyRowIndex < companyDataTable.Rows.Count; companyRowIndex++) { var startTime = DateTime.Now; var companyRow = companyDataTable[companyRowIndex]; var companyID = companyRow.ID; try { //Calculate Hash HashSet <ProductSign> insertedProducts = new HashSet <ProductSign>(new ProductSignComparer()); var productDataTable = productTableAdapter.GetAllProductName(companyID); for (int productRowIndex = 0; productRowIndex < productDataTable.Rows.Count; productRowIndex++) { var productSign = new ProductSign(); var productRow = productDataTable[productRowIndex]; if (productRow["Name"] == DBNull.Value) { continue; } productSign.Name = productRow.Name; if (productRow["Price"] == DBNull.Value) { productSign.Price = productRow.Price; } if (productRow["ImageUrls"] == DBNull.Value) { productSign.ImageUrl = productRow.ImageUrls; } if (insertedProducts.Contains(productSign)) { continue; } int rootID = 0; if (productRow["ProductID"] != DBNull.Value) { rootID = productRow.ProductID; } ProductNameHashBAL.InsertProductNameHash(productRow.ID, productRow.Name, companyID, rootID, productRow.Price); insertedProducts.Add(productSign); } Log.InfoFormat("Insert MerchantProductHash - Company [{0}/{1}]. {2} products", companyRowIndex, companyDataTable.Rows.Count, productDataTable.Rows.Count); var totalTime = (DateTime.Now - startTime).TotalSeconds; Log.InfoFormat("Time: {0} s", totalTime); } catch (Exception innerException) { Log.Error("BuildNameHash. CompanyID: " + companyID, innerException); } } } catch (Exception exception) { Log.Error("BuildNameHash", exception); } }
private void Run() { DBTableAdapters.CompanyTableAdapter companyTableAdapter = new CompanyTableAdapter(); companyTableAdapter.Connection.ConnectionString = _connectionString; DBTableAdapters.Company_AddressTableAdapter addressTableAdapter = new Company_AddressTableAdapter(); addressTableAdapter.Connection.ConnectionString = _connectionString; DB.CompanyDataTable companyDataTable = new DB.CompanyDataTable(); DataTable addressDataTable = new DataTable(); DataTable dtCompany = new DataTable(); dtCompany.Columns.Add("ID", typeof(string)); dtCompany.Columns.Add("Domain", typeof(string)); dtCompany.Columns.Add("Address", typeof(string)); dtCompany.Columns.Add("ThanhPho", typeof(string)); dtCompany.Columns.Add("Phone", typeof(string)); var listDomain = memoEdit1.Text.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); int i = 0; foreach (var item in listDomain) { i++; this.Invoke(new Action(() => { rbError.AppendText(String.Format("{0}. {1}", i, item) + System.Environment.NewLine); })); companyDataTable.Clear(); addressDataTable.Clear(); long idCompany = Common.GetIDCompany(item); try { companyTableAdapter.FillBy_ID(companyDataTable, idCompany); } catch (Exception exception) { this.Invoke(new Action(() => { rbError.AppendText(String.Format("{0}. {1} Fill By ID error: {2}", i, item, exception) + System.Environment.NewLine); })); } if (companyDataTable.Rows.Count > 0) { DataRow dataRow = dtCompany.NewRow(); dataRow["ID"] = idCompany; dataRow["Domain"] = item; dataRow["Address"] = companyDataTable.Rows[0]["Address"]; dataRow["Phone"] = companyDataTable.Rows[0]["Phone"]; //try //{ // string querry = @"SELECT Distinct ThanhPho FROM Company_Address WHERE CompanyID =" + idCompany; // SqlDb sqldb = new SqlDb(_connectionString); // try // { // addressDataTable = sqldb.GetTblData(querry, CommandType.Text, null); // } // catch (Exception) // { // } // string thanhpho = ""; // for (int j = 0; j < addressDataTable.Rows.Count; j++) // { // if (addressDataTable.Rows[j]["ThanhPho"] != DBNull.Value) // { // thanhpho += addressDataTable.Rows[j]["ThanhPho"].ToString()+" , "; // } // } // dataRow["ThanhPho"] = thanhpho; //} //catch (Exception exception) //{ // this.Invoke(new Action(() => // { // rbError.AppendText(String.Format("{0}. {1} Get address error: {2}", i, item, exception)); // })); //} dtCompany.Rows.Add(dataRow); } else { this.Invoke(new Action(() => { rbError.AppendText(String.Format("{0}. {1} Khong ton tai trong SQL", i, item) + System.Environment.NewLine); })); } } this.Invoke(new Action(() => { gridControl1.DataSource = dtCompany; })); }
private static void Main(string[] args) { string rabbitMQServerName = ConfigurationManager.AppSettings["rabbitMQServerName"]; string updateAllProductsOfMerchantGroupName = ConfigurationManager.AppSettings["updateAllProductsOfMerchantGroupName"]; string updateAllProductsOfMerchantJobName = ConfigurationManager.AppSettings["updateAllProductsOfMerchantJobName"]; int updateAllProductsOfMerchantJobExpirationMS = CommonUtilities.Object2Int( ConfigurationManager.AppSettings["updateAllProductsOfMerchantJobExpirationMS"], 0); string productConnectionString = ConfigurationManager.ConnectionStrings["productConnectionString"].ToString(); try { var rabbitMQServer = RabbitMQManager.GetRabbitMQServer(rabbitMQServerName); JobClient jobClient = new JobClient(updateAllProductsOfMerchantGroupName, GroupType.Topic, updateAllProductsOfMerchantJobName, true, rabbitMQServer); //Get List Company var companyTableAdapter = new CompanyTableAdapter { Connection = { ConnectionString = productConnectionString } }; var companyDataTable = companyTableAdapter.GetAllCompanies(); Logger.InfoFormat("Selected {0} merchantIDs from db.", companyDataTable.Rows.Count); var solrClient = SolrProductClient.GetClient(SolrClientManager.GetSolrClient(SolrProductConstants.SOLR_NODE_PRODUCTS)); var currentCompanyList = solrClient.GetAllCompany().Where(x => x.Value > 0).Select(x => x.Key).Select(long.Parse).ToArray(); Logger.InfoFormat("Got {0} merchantIDs from solr.", currentCompanyList.Length); var remainCompanySet = new HashSet <long>(); foreach (var companyID in currentCompanyList) { remainCompanySet.Add(companyID); } var numPushed = 0; for (var rowIndex = 0; rowIndex < companyDataTable.Rows.Count; rowIndex++) { var companyRow = companyDataTable[rowIndex]; var companyID = companyRow.ID; string companyDomain = ""; if (companyRow["Domain"] != DBNull.Value) { companyDomain = companyRow.Domain; } try { var job = new Job { Data = BitConverter.GetBytes(companyID) }; jobClient.PublishJob(job, updateAllProductsOfMerchantJobExpirationMS); if (remainCompanySet.Contains(companyID)) { remainCompanySet.Remove(companyID); } numPushed++; } catch (Exception ex) { Logger.Error(string.Format("Publish error! Company: {0} - Domain: {1}", companyID, companyDomain), ex); } } foreach (var companyID in remainCompanySet) { try { var job = new Job { Data = BitConverter.GetBytes(companyID) }; jobClient.PublishJob(job, updateAllProductsOfMerchantJobExpirationMS); numPushed++; } catch (Exception ex) { Logger.Error(string.Format("Publish error! Company: {0}", companyID), ex); } } Logger.InfoFormat("Schedule success! Published [{0}/{1}] Companies", numPushed, companyDataTable.Rows.Count); Thread.Sleep(100); rabbitMQServer.Stop(); } catch (Exception ex) { Logger.Error("Schedule Error!", ex); } }