コード例 #1
0
    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;
    }