public string BindDataProviders(string requestParam) { string RetVal; DIConnection DIConnection; int NoOfDPs; StringBuilder sb; string PAPath = string.Empty; string PAViewPath = string.Empty; DataTable dt = new DataTable(); bool IsAdminUploadedDSD; SDMXApi_2_0.Message.StructureType SummaryStructureFor2_0 = new SDMXApi_2_0.Message.StructureType(); SDMXObjectModel.Message.StructureType SummaryStructureFor2_1 = new SDMXObjectModel.Message.StructureType(); Dictionary<string, bool> DictColumns; DataTable DtDFD; DataTable DtMFDs; string Query = string.Empty; string DFDPath = string.Empty; string MFDPath = string.Empty; DIConnection = null; RetVal = string.Empty; string hdbnid = string.Empty; string hlngcodedb = string.Empty; string hlngcode = string.Empty; string[] Params = Global.SplitString(requestParam, Constants.Delimiters.ParamDelimiter); int i; hdbnid = Params[0]; hlngcodedb = Params[1]; hlngcode = Params[2]; IsAdminUploadedDSD = false; try { DIConnection = new DIConnection(DIServerType.MsAccess, string.Empty, string.Empty, Server.MapPath("~//stock//Database.mdb"), string.Empty, string.Empty); Query = "SELECT * FROM Artefacts WHERE DBNId = " + Convert.ToInt32(hdbnid) + " AND Type=4;"; DtDFD = DIConnection.ExecuteDataTable(Query); Query = "SELECT * FROM Artefacts WHERE DBNId = " + Convert.ToInt32(hdbnid) + " AND Type=16;"; DtMFDs = DIConnection.ExecuteDataTable(Query); IsAdminUploadedDSD = Global.IsDSDUploadedFromAdmin(Convert.ToInt32(hdbnid)); if (IsAdminUploadedDSD == false) { SummaryStructureFor2_1 = (SDMXObjectModel.Message.StructureType)SDMXObjectModel.Deserializer.LoadFromFile(typeof(SDMXObjectModel.Message.StructureType), Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, Constants.FolderName.Data + hdbnid + "\\sdmx\\Summary" + DevInfo.Lib.DI_LibSDMX.Constants.XmlExtension)); } sb = new StringBuilder(); sb.Append(GetlanguageBasedValueOfKey("langFirstName", hlngcode, "RegProviders.xml")); sb.Append("~"); sb.Append(GetlanguageBasedValueOfKey("langLastName", hlngcode, "RegProviders.xml")); sb.Append("~"); sb.Append(GetlanguageBasedValueOfKey("langCountry", hlngcode, "RegProviders.xml")); sb.Append("~"); sb.Append(GetlanguageBasedValueOfKey("langEmail", hlngcode, "RegProviders.xml")); sb.Append("~"); DictColumns = new Dictionary<string, bool>(); if (IsAdminUploadedDSD == true) { if (DtDFD != null && DtDFD.Rows.Count > 0) { DFDPath = DtDFD.Rows[0]["FileLocation"].ToString(); SDMXObjectModel.Message.StructureType DFD = new SDMXObjectModel.Message.StructureType(); DFD = (SDMXObjectModel.Message.StructureType)Deserializer.LoadFromFile(typeof(SDMXObjectModel.Message.StructureType), DFDPath); DictColumns.Add(DFD.Structures.Dataflows[0].id, false); sb.Append(GetlanguageBasedValueOfKey("langProvisionAgreementFor", hlngcode, "RegProviders.xml") + GetLangSpecificValue_For_Version_2_1(DFD.Structures.Dataflows[0].Name, hlngcodedb)); sb.Append("~"); } if (DtMFDs != null && DtMFDs.Rows.Count > 0) { for (i = 0; i < DtMFDs.Rows.Count; i++) { MFDPath = DtMFDs.Rows[i]["FileLocation"].ToString(); SDMXObjectModel.Message.StructureType MFD = new SDMXObjectModel.Message.StructureType(); MFD = (SDMXObjectModel.Message.StructureType)Deserializer.LoadFromFile(typeof(SDMXObjectModel.Message.StructureType), MFDPath); DictColumns.Add(MFD.Structures.Metadataflows[i].id, false); sb.Append(GetlanguageBasedValueOfKey("langProvisionAgreementFor", hlngcode, "RegProviders.xml") + GetLangSpecificValue_For_Version_2_1(MFD.Structures.Metadataflows[i].Name, hlngcodedb)); sb.Append("~"); } } } else { foreach (SDMXObjectModel.Structure.DataflowType DFD in SummaryStructureFor2_1.Structures.Dataflows) { DictColumns.Add(DFD.id, false); sb.Append(GetlanguageBasedValueOfKey("langProvisionAgreementFor", hlngcode, "RegProviders.xml") + GetLangSpecificValue_For_Version_2_1(DFD.Name, hlngcodedb)); sb.Append("~"); } foreach (SDMXObjectModel.Structure.MetadataflowType MFD in SummaryStructureFor2_1.Structures.Metadataflows) { DictColumns.Add(MFD.id, true); sb.Append(GetlanguageBasedValueOfKey("langProvisionAgreementFor", hlngcode, "RegProviders.xml") + GetLangSpecificValue_For_Version_2_1(MFD.Name, hlngcodedb)); sb.Append("~"); } } sb.Remove(sb.Length - 1, 1); sb.Append(Constants.Delimiters.ParamDelimiter); if (ConfigurationManager.AppSettings[Constants.WebConfigKey.IsGlobalAllow].ToLower() == "true") { diworldwide_userinfo.UserLoginInformation Service = new diworldwide_userinfo.UserLoginInformation(); Service.Url = ConfigurationManager.AppSettings[Constants.WebConfigKey.DiWorldWide4] + Constants.WSQueryStrings.UserLoginService; dt = Service.GetAllDataProviders(Global.GetAdaptationGUID()); } else { Query = "Select NId,User_First_Name,User_Last_Name,User_Country as [User Country],User_Email_Id from Users where User_Is_Provider='True';"; dt = DIConnection.ExecuteDataTable(Query); } dt = this.Replace_AreaNIds_With_Names(dt); NoOfDPs = dt.Rows.Count; // Binding Data Providers for (i = 0; i < NoOfDPs; i++) { if (Global.Is_Already_Existing_Provider(dt.Rows[i]["NId"].ToString())) { sb.Append("" + dt.Rows[i]["User_First_Name"] + ""); sb.Append("~"); sb.Append("" + dt.Rows[i]["User_Last_Name"] + ""); sb.Append("~"); sb.Append("" + dt.Rows[i]["User Country"] + ""); sb.Append("~"); sb.Append("" + dt.Rows[i]["User_Email_Id"] + ""); sb.Append("~"); foreach (string Id in DictColumns.Keys) { PAPath = Path.Combine(HttpContext.Current.Request.PhysicalApplicationPath, Constants.FolderName.Data + hdbnid + "\\sdmx\\Provisioning Metadata\\PAs\\" + "PA_" + dt.Rows[i]["NId"] + "_" + Id + DevInfo.Lib.DI_LibSDMX.Constants.XmlExtension); PAViewPath = "../../" + PAPath.Substring(PAPath.LastIndexOf("stock")).Replace("\\", "/"); sb.Append("<a href=\" " + PAViewPath + "\" "); sb.Append(" target=\"_blank\" name=\"lang_View\"></a> | "); sb.Append("<a href='Download.aspx?fileId=" + PAPath + "' name=\"lang_Download\"></a>"); sb.Append("~"); } sb.Remove(sb.Length - 1, 1); sb.Append(Constants.Delimiters.PivotRowDelimiter); } } sb.Remove(sb.Length - 1, 1); RetVal = sb.ToString(); } catch (Exception ex) { Global.CreateExceptionString(ex, null); throw ex; } finally { if (DIConnection != null) { DIConnection.Dispose(); } } return RetVal; }