/// <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; }
/// <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); }