示例#1
0
        private void NotifyValidatedProduct(MssNoValidTotalCompany mssNotiCompany)
        {
            string query = @"
DELETE CompanyNotificationTotal WHERE CompanyId = @CompanyId;    
INSERT INTO [dbo].[CompanyNotificationTotal]
           ([CompanyId]
           ,[Domain]
           ,[TotalProduct]
           ,[MaxValidWarning]
           ,[MinValidWarning]
           ,[MaxValid]
           ,[MssNoValid])
     VALUES
           (@CompanyId
           ,@Domain
           ,@TotalProduct
           ,@MaxValidWarning
           ,@MinValidWarning
           ,@MaxValid
           ,@MssNoValid
          
    );";
            bool   bOK   = _sqlDbNtotification.RunQuery(query, CommandType.Text,
                                                        new SqlParameter[]
            {
                SqlDb.CreateParamteterSQL("CompanyID", mssNotiCompany.CompanyId, SqlDbType.BigInt), SqlDb.CreateParamteterSQL("Domain", mssNotiCompany.Domain, SqlDbType.NVarChar),
                SqlDb.CreateParamteterSQL("TotalProduct", mssNotiCompany.TotalProduct, SqlDbType.Int), SqlDb.CreateParamteterSQL("MaxValidWarning", mssNotiCompany.MaxValidWarning, SqlDbType.Int),
                SqlDb.CreateParamteterSQL("MinValidWarning", mssNotiCompany.MinValidWarning, SqlDbType.Int), SqlDb.CreateParamteterSQL("MaxValid", mssNotiCompany.MaxValid, SqlDbType.Int),
                SqlDb.CreateParamteterSQL("MssNoValid", mssNotiCompany.MssNoValid, SqlDbType.NVarChar),
            });

            _log.Info(string.Format("Saved for company {0} {1}", mssNotiCompany.CompanyId, bOK));
        }
示例#2
0
        public override void ProcessMessage(BasicDeliverEventArgs message)
        {
            MssNoValidTotalCompany companyID = Newtonsoft.Json.JsonConvert.DeserializeObject <MssNoValidTotalCompany>(UTF8Encoding.UTF8.GetString(message.Body));

            NotifyValidatedProduct(companyID);
            GetChannel().BasicAck(message.DeliveryTag, true);
        }
示例#3
0
        private void NotifyValidatedProduct(long companyID)
        {
            string query = @"SELECT a.ID, a.Domain, a.TotalProduct, a.MaxValid, b.MinProductToWarning, b.MaxProductToWarning
	FROM Company a INNER JOIN Configuration b on a.ID = b.CompanyID
    WHERE a.ID = @CompanyID";

            DataTable tbl = _productAdapter.GetSqlDb().GetTblData(query, CommandType.Text, new SqlParameter[] {
                SqlDb.CreateParamteterSQL("CompanyID", companyID, SqlDbType.BigInt)
            });

            if (tbl != null && tbl.Rows.Count > 0)
            {
                DataRow row                 = tbl.Rows[0];
                int     totalProduct        = Common.CellToInt(row, "TotalProduct", 0);
                int     maxValid            = Common.CellToInt(row, "MaxValid", 0);
                string  domain              = Common.CellToString(row, "Domain", "");
                int     minProductToWarning = Common.CellToInt(row, "MinProductToWarning", 0);
                int     maxProductToWarning = Common.CellToInt(row, "MaxProductToWarning", 0);


                var objData = new MssNoValidTotalCompany()
                {
                    CompanyId       = companyID,
                    Domain          = domain,
                    MaxValid        = maxValid,
                    MaxValidWarning = maxProductToWarning,
                    MinValidWarning = minProductToWarning,
                    TotalProduct    = totalProduct,
                    MssNoValid      = "Valid total"
                };

                if (totalProduct == 0)
                {
                    objData.MssNoValid = "Total product = 0";
                    _producerNoValidTotalProduct.PublishString(Newtonsoft.Json.JsonConvert.SerializeObject(objData));
                }
                else if (maxValid > 0 && Math.Abs((maxValid - totalProduct) / maxValid) > 0.2)
                {
                    objData.MssNoValid = "Over 20%";
                    _producerNoValidTotalProduct.PublishString(Newtonsoft.Json.JsonConvert.SerializeObject(objData));
                }
                else if (minProductToWarning > 0 && minProductToWarning > totalProduct)
                {
                    objData.MssNoValid = "MinProduct Warning";
                    _producerNoValidTotalProduct.PublishString(Newtonsoft.Json.JsonConvert.SerializeObject(objData));
                }
                else if (maxProductToWarning > 0 && maxProductToWarning < totalProduct)
                {
                    objData.MssNoValid = "MaxProduct Warning";
                    _producerNoValidTotalProduct.PublishString(Newtonsoft.Json.JsonConvert.SerializeObject(objData));
                }

                _log.Info(string.Format("Company: {0} {1} TotalProduct: {2} MaxValid: {3} MaxProductToWarning: {4} MinProductToWarning: {5} Mss: {6}",
                                        companyID, domain, totalProduct, maxValid, maxProductToWarning, minProductToWarning, objData.MssNoValid));
            }
        }