Условный оператор C # Web App, который может принимать результаты из SQL-запроса - PullRequest
0 голосов
/ 30 августа 2011

Я работаю над старой CMS (C #, Visual Studio 2005, .NET 2.0), которая разделяет видимость объекта на основе идентификатора пользователя и отношения этого пользователя с идентификатором поставщика. В настоящее время у меня есть условие, которое сработало до сих пор, которое просто делает это:

protected void Page_Load(object sender, EventArgs e)
    {
        // If the current user is Special Vendor 1, or has a parent Id of Special Vendor 1 then load the "Special Vendor 1" documents
        if ((CurrentUser.Vendor.Id == 3) || (CurrentUser.Vendor.ParentVendor.Id == 3) || (CurrentUser.Vendor.ParentVendor.Id == 1) || (CurrentUser.Vendor.Id == 374) || (CurrentUser.Vendor.ParentVendor.Id == 374))

        {
            hypCatalogAccessLink.NavigateUrl = "documents/SpecialVendor1_Catalog_Access_v3 3_2011_08SV1.pdf";
            hypCatalogAccessLink.Text = "Download Special Vendor 1 Catalog Access";
            hypCatalogAccessLink.Target = "_blank";
        }
        // Another Special Vendor (Special Vendor 2)
        else if ((CurrentUser.Vendor.Name == "Special Vendor 2") || (CurrentUser.Vendor.ParentVendor.Name == "Special Vendor 2"))
        {
            hypCatalogAccessLink.NavigateUrl = "documents/SpecialVendor2_Catalog_Access_v3.3_2011_08_SV2.pdf";
            hypCatalogAccessLink.Text = "Download Special Vendor 2 Catalog Access";
            hypCatalogAccessLink.Target = "_blank";
        }
        else // Use Generic Vendor Catalog as default
        {
            hypCatalogAccessLink.NavigateUrl = "documents/Generic_Catalog_Access_v3 3_2011_08.pdf";
            hypCatalogAccessLink.Text = "Download Generic Catalog Access";
            hypCatalogAccessLink.Target = "_blank";
        }
    }

Что я хочу сделать, теперь, когда у нас много, много дочерних поставщиков Special Vendor 1, это извлечь всех дочерних поставщиков из хранимой процедуры, которая будет обновлять результаты по мере добавления дочерних поставщиков в режиме реального времени. Однако я не знаю, как интегрировать набор целочисленных результатов в условный оператор. Мой первый инстинкт - использовать foreach в первом условии, но у меня нет опыта в таких вещах. Я могу вызвать мою хранимую процедуру с EXEC GetAllSV1ChildVendors Который возвращает список из 24 поставщиков, которых я хочу отфильтровать для доступа к специальным поставщикам 1. Должен ли я заполнить массив? Существует ли более прямой метод доступа к результатам хранимой процедуры? Любая помощь это здорово. Спасибо!

1 Ответ

0 голосов
/ 30 августа 2011

если вы храните свой список идентификаторов поставщиков в списке, вы можете сделать

if (VendorList.Contains(CurrentUser.Vendor.Id) ...
...