2012-07-04 3 views
0

Я использую 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.

Как это сделать.

Может ли кто-нибудь помочь мне с этим? Любые предложения приветствуются.

+0

Вы не должны (не можете) выполнить операцию ui из класса bll. Что не так с вашим кодом? –

+0

@SteveB Этот код работает, поэтому вы рекомендуете его использовать только в коде? Это нормально? – freebird

+0

Каждый слой несет свою ответственность. Уровень BLL должен обрабатывать бизнес-логику, доступ к данным DAL и пользовательский интерфейс презентации. В этом случае код, который вы показываете, является, если я правильно понимаю, способ настройки пользовательского интерфейса на основе некоторой бизнес-ценности. В этом случае я думаю, что это работа UI, поэтому ваш код выглядит как OK в моем случае. –

ответ

1

Я бы предложил не выполнять это в классе BLL. НЕ ИСПОЛЬЗУЙТЕ это для BLL, поскольку он предназначен для разделения логики доступа к данным из логики представления.

+0

Итак, что я делаю прямо сейчас в коде позади, хорошо, что вы думаете? Спасибо. – freebird

+0

да .. это правильно. Вы можете оптимизировать это в коде за самой частью. –

+0

Спасибо за помощь :) – freebird

Смежные вопросы