Пример #1
0
        /// <summary>
        /// Get Value by UPSInfo
        /// </summary>
        /// <param name="hpPOInfo"></param>
        /// <param name="name"></param>
        /// <param name="spliter"></param>
        /// <returns></returns>
        public static string GetValue(UPSHPPOInfo hpPOInfo,
                                                   string name,
                                                   char spliter)
        {
            int index = name.IndexOf(spliter);
            if (index < 1)
            {
                throw new Exception("wrong method name : " + name);
            }

            string objName = name.Substring(0, index).ToUpper();
            string objMethod = name.Substring(index + 1).Trim();

            if (objName == "UPSHPPOINFO")
            {
                if (hpPOInfo == null)
                {
                    throw new FisException("CQCHK0006", new List<string> { "UPSHPPOInfo" });
                }
                string value = (string)hpPOInfo.GetProperty(objMethod);
                if (string.IsNullOrEmpty(value))
                {
                    throw new FisException("not exists property name:" + name);
                }
                return value;
            }
            return null;
        }
Пример #2
0
        /// <summary>
        /// Resolve UPS Parameter Name/Value
        /// </summary>
        /// <param name="srcData"></param>
        /// <param name="session"></param>
        /// <param name="product"></param>
        /// <param name="dn"></param>
        /// <param name="part"></param>
        /// <param name="hpPOInfo"></param>
        /// <param name="spliter"></param>
        /// <returns></returns>
        public static string replaceUPSParameter(string[] srcData, 
                                                                     Session session, 
                                                                      IProduct product, 
                                                                      Delivery dn, 
                                                                      IPart part,
                                                                      UPSHPPOInfo  hpPOInfo,                                                                        
                                                                      char spliter)
        {
           
            int index = 0;
            foreach (string value in srcData)
            {
                if (value.Contains(spliter))
                {
                    string s = GetValue(hpPOInfo, value, spliter);
                    if (string.IsNullOrEmpty(s))
                    {
                        s = ResolveValue.GetValue(session, product, null, dn, part, value, spliter);
                    }

                    if (string.IsNullOrEmpty(s))
                    {
                        throw new FisException("CQCHK0006", new List<string> { value });
                    }
                    srcData[index] = s;
                }
                index++;
            }
            return string.Join(",", srcData);
        }