Esempio n. 1
0
        public List<NotifyBsamModelResponse> NotifyBsamModel(NotifyBsamModel[] BsamModelItems)
        {
            string connectionDB_BK = "SD_DBServer";
            string methodName = MethodBase.GetCurrentMethod().Name;
            BaseLog.LoggingBegin(logger, methodName);

            try
            {            
                //1.檢查必要的input parameter
                Execute.ValidateParameter(connectionDB_BK, BsamModelItems);

                //3.執行DB insert
                Execute.Process(connectionDB_BK, BsamModelItems);

                //4.Build Response Message
                List<NotifyBsamModelResponse> pgiresponse = Execute.BuildResponseMsg(connectionDB_BK, BsamModelItems);

                return pgiresponse;
            }
            catch (Exception e)
            {
                logger.Error(MethodBase.GetCurrentMethod(), e);
                //  UTL.SendMail("test", e.Message);
                //4.Build Response Error Message
                List<NotifyBsamModelResponse> ResponseList = new List<NotifyBsamModelResponse>();
                foreach (NotifyBsamModel item in BsamModelItems)
                {
                    NotifyBsamModelResponse response = new NotifyBsamModelResponse();
                    string SerialNumber = "";
                    string State = "F";
                    response.SerialNumber = SerialNumber;
                    response.Result = State;
                    ResponseList.Add(response);
                }
                return ResponseList;
            }
            finally
            {
                BaseLog.LoggingEnd(logger, methodName);
            }
        
        }
Esempio n. 2
0
        public static void UpdateBsamModel(string connectionDB, int dbIndex, NotifyBsamModel result)
        {
            string IEC_A_Part = result.IEC_A_Part;
            string HP_A_Part = (result.HP_A_Part == null ? "":result.HP_A_Part);
            string HP_C_SKU = result.HP_C_SKU;

            string strSQL = @"if not exists(select * from BSamModel where A_Part_Model=@IEC_A_Part)
                              begin
                                    insert into BSamModel(A_Part_Model, C_Part_Model, HP_A_Part, HP_C_SKU, QtyPerCarton, Editor, Cdt, Udt)
                                    values (@IEC_A_Part, '', @HP_A_Part, @HP_C_SKU, 0, 'SAP', @Now, @Now)  
                              end";

            SQLHelper.ExecuteNonQuery(SQLHelper.GetDBConnectionString(connectionDB, dbIndex),
                                                System.Data.CommandType.Text,
                                                strSQL,
                                                SQLHelper.CreateSqlParameter("@IEC_A_Part", 20, IEC_A_Part),
                                                SQLHelper.CreateSqlParameter("@HP_A_Part", 20, HP_A_Part),
                                                SQLHelper.CreateSqlParameter("@HP_C_SKU", 20, HP_C_SKU),
                                                SQLHelper.CreateSqlParameter("@Now", DateTime.Now));
        }
Esempio n. 3
0
        //3.執行DB insert 
        public static void Process(string connectionDB, NotifyBsamModel[] results)
        {
            int dbIndex = 0;
            string methodName = MethodBase.GetCurrentMethod().Name;
            BaseLog.LoggingBegin(logger, methodName);
            try
            {
                foreach (NotifyBsamModel item in results)
                {
                    string SerialNumber = item.SerialNumber;
                    string LogState = SQL.GetBsamModelState(connectionDB, dbIndex, SerialNumber);
                    if (LogState != "F")
                    {
                        SQL.UpdateBsamModel(connectionDB, 1, item);

                        //log success response record to TxnDataLog
                        SQL.InsertTxnDataLog_DB(connectionDB, dbIndex,
                                                EnumMsgCategory.Response,
                                                "NotifyBsamModelResponse",
                                                string.IsNullOrEmpty(item.IEC_A_Part) ? "" : item.IEC_A_Part,
                                                string.IsNullOrEmpty(item.HP_C_SKU) ? "" : item.HP_C_SKU,
                                                string.IsNullOrEmpty(item.SerialNumber) ? "" : item.SerialNumber,
                                                "",
                                                "",
                                                EnumMsgState.Success,
                                                "");
                    }
                }
                
            }
            catch (Exception e)
            {
                BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e);
                throw e;
            }
            finally
            {
                BaseLog.LoggingEnd(logger, methodName);
            }
        }
Esempio n. 4
0
        //1.檢查必要的input parameter
        public static void ValidateParameter(string connectionDB, NotifyBsamModel[] results)
        {
            int dbIndex = 0;
            string methodName = MethodBase.GetCurrentMethod().Name;
            BaseLog.LoggingBegin(logger, methodName);
            try
            {
                List<string> NotNullItemList = new List<string> {"SerialNumber",
                                                                 "IEC_A_Part",
                                                                 "HP_C_SKU"};
                foreach (NotifyBsamModel item in results)
                {
                    logger.DebugFormat("NotifyBsamModel: \r\n{0}", ObjectTool.ObjectTostring(item));
                    //log receive record to TxnDataLog
                    SQL.InsertTxnDataLog_DB(connectionDB, dbIndex,
                                            EnumMsgCategory.Receive,
                                            "NotifyBsamModel",
                                            string.IsNullOrEmpty(item.IEC_A_Part) ? "" : item.IEC_A_Part,
                                            string.IsNullOrEmpty(item.HP_C_SKU) ? "" : item.HP_C_SKU,
                                            string.IsNullOrEmpty(item.SerialNumber) ? "" : item.SerialNumber,
                                            "",
                                            "",
                                            EnumMsgState.Received,
                                            "");
                }

                foreach (NotifyBsamModel item in results)
                {
                    //Check null data
                    string className = item.GetType().BaseType.Name;
                    if (className == "Object")
                    { className = item.GetType().Name; }
                    string title = "These columns of " + className + " are null or no data : ";
                    string error = "";
                    foreach (string itemcolumn in NotNullItemList)
                    {
                        if (string.IsNullOrEmpty(GetValueByType(itemcolumn, item).Trim()))
                        { error = error + itemcolumn + ","; }
                    }

                    if (error != "")
                    {
                        error = title + error;

                        //log fail response record to TxnDataLog
                        SQL.InsertTxnDataLog_DB(connectionDB, dbIndex,
                                                EnumMsgCategory.Response,
                                                "NotifyBsamModelResponse",
                                                string.IsNullOrEmpty(item.IEC_A_Part) ? "" : item.IEC_A_Part,
                                                string.IsNullOrEmpty(item.HP_C_SKU) ? "" : item.HP_C_SKU,
                                                string.IsNullOrEmpty(item.SerialNumber) ? "" : item.SerialNumber,
                                                "",
                                                "",
                                                EnumMsgState.Fail,
                                                "");
                    }            
                }

            }
            catch (Exception e)
            {
                BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e);
                throw e;
            }
            finally
            {
                BaseLog.LoggingEnd(logger, methodName);
            }
            
        }
Esempio n. 5
0
        //4.Build Response message structure
        public static List<NotifyBsamModelResponse> BuildResponseMsg(string connectionDB, NotifyBsamModel[] results)
        {
            int dbIndex = 0;
            string methodName = MethodBase.GetCurrentMethod().Name;
            BaseLog.LoggingBegin(logger, methodName);
            List<NotifyBsamModelResponse> ResponseList = new List<NotifyBsamModelResponse>();
            try
            {
                foreach (NotifyBsamModel item in results)
                {
                    BaseLog.LoggingInfo(logger, "SerialNumber: \r\n{0}", ObjectTool.ObjectTostring(item.SerialNumber));

                    NotifyBsamModelResponse response = new NotifyBsamModelResponse();
                    string SerialNumber = item.SerialNumber;
                    string State = SQL.GetBsamModelState(connectionDB, dbIndex, SerialNumber);
                    if (State == "N") State = "F";
                    response.SerialNumber = item.SerialNumber;
                    response.Result = State;
                    ResponseList.Add(response);
                }

                return ResponseList;
            }
            catch (Exception e)
            {
                BaseLog.LoggingError(logger, MethodBase.GetCurrentMethod(), e);
                throw e;
            }
            finally
            {
                BaseLog.LoggingEnd(logger, methodName);
            }                 

        }