2013-06-24 3 views
-1

Я хочу, чтобы удалить жесткое значение коды от случая statement.Right теперь я даю некоторые жесткие значения кодов для различных пользователей, какКак получить текущее имя пользователя в переключателе сазе

ScheduledUtility.ClsISession.OpenSession(); 
      switch (Convert.ToString(System.Security.Principal.WindowsIdentity.GetCurrent().Name)) 
      { 
       case @"suniln": 

        AP.ClsBatchInvoice objBatchInvoice = new AP.ClsBatchInvoice(ScheduledUtility.ClsISession.mySession); 
        objBatchInvoice.ReportId = new Guid("6D783F3C-206C-6576-7273-696F6E3D2231"); 
        objBatchInvoice.PDFFileName = "BatchInvoice"; 
        objBatchInvoice.VBatchInvoice(); 
    break; 


       case @"vijayk": 

        VendorInvoice_svc objvendor = new VendorInvoice_svc(objsession.mySession); 
        objvendor.GetVenderReports(); 
        AP.Aging_svc objaging = new AP.Aging_svc(ScheduledUtility.ClsISession.mySession); 
        objaging.viewerRptAging_Load(); 
break; 

Как я могу писать значение регистра и получить его от environment.username?

+2

Как это соотносится с SQL Server? Здесь я не вижу никакого кода, связанного с SQL. –

+0

Могу ли я предложить вам пересмотреть свой подход и посмотреть на [Стратегический шаблон] (http://sourcemaking.com/design_patterns/strategy) с одной стратегией на роль? Это полностью исключает утверждение дела. – neontapir

ответ

2

«Корпус» принимает только постоянные значения, поэтому включение динамических элементов, таких как переменные, будет невозможно.

P.S. - Лучше изменить свой подход и связать пользователей с предопределенными ролями, поместить их в константу, как Enum, и создать свое дерево решений на основе предопределенных ролей в случае коммутатора.