Exemplo n.º 1
0
        private int ADDESBDataToDS(int C_ID, IMessage ESB_Data)
        {
            int ESB_ID = -1;

            if (ESB_Data == null)
            {
                return(ESB_ID);
            }
            //ESB
            DSCompare.DTESBRow drESB = dSCompare.DTESB.NewDTESBRow();
            drESB.C_ID       = C_ID;
            drESB.Action     = ESB_Data.Action;
            drESB.ResultCode = ESB_Data.ResultCode;
            drESB.Sender     = ESB_Data.Sender;
            ESB_ID           = drESB.ESB_ID;//紀錄ID
            dSCompare.DTESB.AddDTESBRow(drESB);
            //detail
            Dictionary <string, PElement> dicESB = ESB_Data.Parameters as Dictionary <string, PElement>;

            if (dicESB != null)
            {
                foreach (string key in dicESB.Keys)
                {
                    DSCompare.DTESBDetailRow drESBD = dSCompare.DTESBDetail.NewDTESBDetailRow();
                    drESBD.ESB_ID         = ESB_ID;
                    drESBD.ParameterName  = key;
                    drESBD.ParameterValue = dicESB[key].Value;
                    drESBD.ParameterType  = dicESB[key].Value.GetType().ToString();
                    dSCompare.DTESBDetail.AddDTESBDetailRow(drESBD);
                }
            }
            return(ESB_ID);
        }
Exemplo n.º 2
0
        private int GetIndexWithBaseParamWithMutiKey(Dictionary <string, string> lstParam, int C_ID, int ESBDATACount)
        {
            int intRet = -1;

            if (lstParam.Count == 0)
            {
                return(intRet);
            }
            try
            {
                lstParam.Keys.Cast <string>().Where(w => w.ToUpper().Trim() == "CARDNO").Select(s => lstParam[s] = lstParam[s].PadLeft(19, '0')).ToList();
                DSCompare.DTESBRow drESB = dSCompare.DTESB.Cast <DSCompare.DTESBRow>().Where(w => w.C_ID == C_ID).FirstOrDefault();
                int ESB_ID = -1;
                if (drESB != null)
                {
                    ESB_ID = drESB.ESB_ID;
                }

                Dictionary <string, string> lstParamCompare = new Dictionary <string, string>();
                bool blnCompare = false;
                for (int i = 0; i < ESBDATACount; i++)
                {
                    lstParamCompare.Clear();
                    foreach (string sParameterName in lstParam.Keys)
                    {
                        DSCompare.DTESBDetailRow drESBD = dSCompare.DTESBDetail.Cast <DSCompare.DTESBDetailRow>().Where(w => w.ESB_ID == ESB_ID && w.ParameterName == sParameterName + i.ToString()).FirstOrDefault();
                        if (drESBD == null)
                        {
                            continue;
                        }
                        if (lstParamCompare.ContainsKey(sParameterName))
                        {
                            lstParamCompare[sParameterName] = drESBD.ParameterValue.ToString().Trim();
                        }
                        else
                        {
                            lstParamCompare.Add(sParameterName, drESBD.ParameterValue.ToString().Trim());
                        }
                    }

                    blnCompare = lstParam.Keys.Cast <string>().Where(w => lstParamCompare.ContainsKey(w) && lstParam[w] == lstParamCompare[w]).Count() == lstParam.Count;
                    if (blnCompare)
                    {
                        intRet = i;
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                this.m_Log.WriteLog("GetIndexWithBaseParamWithMutiKey", ex.Message);
                intRet = -1;
            }
            return(intRet);
        }