Я использую ASP.NET Web Forms/C#
.Перемещение функции из кода позади в Business Logic Layer Class
У меня есть эта функция в моих code behind
, которая заполняет города DropDownList
на основе штата DropDownList
выбор.
Вот моя функция.
public void CityFill(int index,int id)
{
//This function calls GetCities method which will get all cities of a state.
var city = CustomerBLL.GetCities(index);
//If id=0 then clear all dropdown before filling
//or else they get appended.
if (id == 0)
{
NewCustomerddlResidentialCity.Items.Clear();
NewCustomerddlOfficeCity.Items.Clear();
NewCustomerddlNativeCity.Items.Clear();
NewCustomerddlNomineeCity.Items.Clear();
}
else
{
//If 1 then clear residential city
if(id==1)
NewCustomerddlResidentialCity.Items.Clear();
//If 2 then clear Office city.
if(id==2)
NewCustomerddlOfficeCity.Items.Clear();
//If id=3 then clear Native City.
if(id==3)
NewCustomerddlNativeCity.Items.Clear();
//If id=4 then clear Nominee City
if(id==4)
NewCustomerddlNomineeCity.Items.Clear();
}
//Loop through all the cities in st object
foreach (var c in city)
{
//If id=0 then fill all dropdowns
if (id == 0)
{
NewCustomerddlResidentialCity.Items.Add(c.city_name.Trim());
NewCustomerddlOfficeCity.Items.Add(c.city_name.Trim());
NewCustomerddlNativeCity.Items.Add(c.city_name.Trim());
NewCustomerddlNomineeCity.Items.Add(c.city_name.Trim());
}
else
{
//If 1 then fill Res City
if(id==1)
NewCustomerddlResidentialCity.Items.Add(c.city_name.Trim());
//If 2 then fill Off City
if(id==2)
NewCustomerddlOfficeCity.Items.Add(c.city_name.Trim());
//If 3 then fill nat city
if(id==3)
NewCustomerddlNativeCity.Items.Add(c.city_name.Trim());
//If 4 then fill nominee city
if(id==4)
NewCustomerddlNomineeCity.Items.Add(c.city_name.Trim());
}
}
}
Аргументы, переданные функции, являются индексом и идентификатором. индекс SelectedIndex
государства DropDownList
. id - какой город DropDownList
необходимо заполнить.
Вот BLL класс
namespace CwizBankApp
{
public class CustomerBLL
{
public IList<mem_city> GetCities(int index)
{
using (var db = new DataClasses1DataContext())
{
var city = db.mem_cities.Where(c => c.state_id.Equals(index)).ToList();
return city;
}
}
}
}
мне нужно переместить функцию из кода позади в класс BLL.
Как это сделать.
Может ли кто-нибудь помочь мне с этим? Любые предложения приветствуются.
Вы не должны (не можете) выполнить операцию ui из класса bll. Что не так с вашим кодом? –
@SteveB Этот код работает, поэтому вы рекомендуете его использовать только в коде? Это нормально? – freebird
Каждый слой несет свою ответственность. Уровень BLL должен обрабатывать бизнес-логику, доступ к данным DAL и пользовательский интерфейс презентации. В этом случае код, который вы показываете, является, если я правильно понимаю, способ настройки пользовательского интерфейса на основе некоторой бизнес-ценности. В этом случае я думаю, что это работа UI, поэтому ваш код выглядит как OK в моем случае. –