public static DynamicParam GetParam(this Array array) { DynamicParam dynamicParam = null; if (array != null && array.Length > 0) { dynamicParam = new DynamicParam(); dynamic paramValue = new System.Dynamic.ExpandoObject(); StringBuilder paramNameSB = new StringBuilder(); for (int i = 0; i < array.Length; i++) { string currStr = $"UUID{i}"; paramNameSB.Append($":{currStr}"); if (i < (array.Length - 1)) { paramNameSB.Append(","); } ((IDictionary <string, object>)paramValue).Add(currStr, array.GetValue(i)); } dynamicParam.ParamName = paramNameSB.ToString(); dynamicParam.ParmValue = paramValue; } return(dynamicParam); }
public static void AddParam(this DynamicParam dynamicParam, string paramName, object paramValue) { ((IDictionary <string, object>)dynamicParam.ParmValue).Add(paramName, paramValue); }
private int Step1CheckLogic(string tempUnzippedPath, ShippingProvider provider) { if (CheckFormanifestFile(tempUnzippedPath, provider) != "") { var doc = new XmlDocument(); doc.Load(tempUnzippedPath + '\\' + provider.ManifestFile); XmlElement root = doc.DocumentElement; if (CheckValidManifestFile(root)) { XmlNodeList xnList3 = doc.SelectNodes("sageframe/folders/folder/files/file"); if (xnList3.Count != 0) { var dlls = new ArrayList(); foreach (XmlNode xn3 in xnList3) { string fileName = xn3["name"].InnerXml; try { #region CheckValidDataSqlProvider if (!String.IsNullOrEmpty(fileName) && fileName.Contains("1.00.00.SqlDataProvider")) { provider.InstallScript = fileName; } #endregion #region CheckAlldllFiles if (!String.IsNullOrEmpty(fileName) && fileName.Contains(".dll")) { dlls.Add(fileName); _provider.DllFiles = dlls; } #endregion #region ReadUninstall SQL FileName if (!String.IsNullOrEmpty(fileName) && fileName.Contains("Uninstall.SqlDataProvider")) { provider.UninstallScript = fileName; } #endregion } catch (Exception ex) { break; } } } XmlNodeList xnList = doc.SelectNodes("sageframe/folders/folder"); foreach (XmlNode xn in xnList) { provider.ShippingProviderName = xn["providername"].InnerXml; provider.ShippingProviderAliasHelp = xn["provideraliashelp"].InnerXml; provider.ShippingProviderServiceCode = xn["servicecode"].InnerXml; provider.AssemblyName = xn["assemblyname"].InnerXml; provider.ShippingProviderNamespace = xn["namespace"].InnerXml; provider.ShippingProviderClass = xn["class"].InnerXml; provider.ModuleFolder = "Modules/" + xn["foldername"].InnerXml; provider.IsActive = true; if (IsProviderExist(provider.ShippingProviderName, _storeId, _portalId)) { XmlNodeList settingCtl = doc.SelectNodes("sageframe/folders/folder/modules/module/controls/control"); foreach (XmlNode xn5 in settingCtl) { if (xn5["name"].InnerXml.ToLower().Trim() == "setting") { provider.SettingControlPath = xn5["src"].InnerXml; } if (xn5["name"].InnerXml.ToLower().Trim() == "label") { provider.LabelControlPath = xn5["src"].InnerXml; } if (xn5["name"].InnerXml.ToLower().Trim() == "track") { provider.TrackControlPath = xn5["src"].InnerXml; } } XmlNodeList xnList2 = doc.SelectNodes("sageframe/folders/folder/settings/setting"); foreach (XmlNode xn2 in xnList2) { string settingkey = xn2["key"].InnerXml; string settingvalue = xn2["value"].InnerXml; _providerSetting.Add(new KeyValuePair <string, string>(settingkey, settingvalue)); } provider.Settings = _providerSetting; XmlNodeList methods = doc.SelectNodes("sageframe/folders/folder/dynamicmethods/method"); foreach (XmlNode method in methods) { var dymethod = new DynamicMethod(); dymethod.MethodName = method["name"].InnerXml; dymethod.MethodType = method.Attributes["type"].Value; var parlist = new List <DynamicParam>(); XmlNodeList parameters = method.SelectNodes("params/param"); if (parameters != null) { int parCount = 0; foreach (XmlNode param in parameters) { var pars = new DynamicParam(); parCount++; pars.ParameterName = param.Attributes["type"].Value; pars.ParameterType = param.Attributes["objectType"].Value; pars.ParameterOrder = int.Parse(param.Attributes["order"].Value); parlist.Add(pars); } dymethod.DynamicParams = parlist; } _dynamicMethods.Add(dymethod); } provider.DynamicMethods = _dynamicMethods; _provider.SettingControlTempPath = ResolveUrl(this.AppRelativeTemplateSourceDirectory) + "temp\\extracted\\" + _provider.SettingControlPath.Split('/').Last(); _provider.SettingControlTempPath = Regex.Replace(_provider.SettingControlTempPath, @"(\\)", @"//"); return(1);//Already exist } else { XmlNodeList settingCtl = doc.SelectNodes("sageframe/folders/folder/modules/module/controls/control"); foreach (XmlNode xn5 in settingCtl) { if (xn5["name"].InnerXml.ToLower().Trim() == "setting") { provider.SettingControlPath = xn5["src"].InnerXml; } if (xn5["name"].InnerXml.ToLower().Trim() == "label") { provider.LabelControlPath = xn5["src"].InnerXml; } if (xn5["name"].InnerXml.ToLower().Trim() == "track") { provider.TrackControlPath = xn5["src"].InnerXml; } } XmlNodeList xnList2 = doc.SelectNodes("sageframe/folders/folder/settings/setting"); foreach (XmlNode xn2 in xnList2) { string settingkey = xn2["key"].InnerXml; string settingvalue = xn2["value"].InnerXml; _providerSetting.Add(new KeyValuePair <string, string>(settingkey, settingvalue)); } provider.Settings = _providerSetting; XmlNodeList methods = doc.SelectNodes("sageframe/folders/folder/dynamicmethods/method"); foreach (XmlNode method in methods) { var dymethod = new DynamicMethod(); dymethod.MethodName = method["name"].InnerXml; XmlNodeList parameters = method.SelectNodes("params/param"); if (parameters != null) { var listParam = new List <DynamicParam>(); int parCount = 0; foreach (XmlNode param in parameters) { var pars = new DynamicParam(); parCount++; pars.ParameterName = param.Attributes["type"].Value; pars.ParameterType = param.Attributes["objectType"].Value; pars.ParameterOrder = int.Parse(param.Attributes["order"].Value); listParam.Add(pars); } dymethod.DynamicParams = listParam; } _dynamicMethods.Add(dymethod); } provider.DynamicMethods = _dynamicMethods; _provider.SettingControlTempPath = ResolveUrl(this.AppRelativeTemplateSourceDirectory) + "temp\\extracted\\" + _provider.SettingControlPath.Split('/').Last(); _provider.SettingControlTempPath = Regex.Replace(_provider.SettingControlTempPath, @"(\\)", @"//"); return(2);//Not Exists } } } else { return(-1);//Invalid Manifest file } } return(0);//No manifest file }