Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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();
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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;
            }));
        }
Ejemplo n.º 7
0
        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);
            }
        }