//메인 응용프로그램 static void Main(string[] args) { //유저 여러개라 리스트로 선언함 List <BillingManager> managers = new List <BillingManager>(); //인터페이스 선언 (usermanager, adminmanager에서 상속받아서 사용할거) BillingManager manager = null; //입력받는값선언 string input = string.Empty; do { PrintLoginMenu(out input); try { //입력받은 아이디를 통해 인터페이스(BillingManager)를 받는거긴 한데 인터페이스는 객체 생성을 할 수 없음 //따라서 BillingManager를 상속받고 있는 UserManger or AdminManager 선언을 한다 manager = BillingFactory.GetInstance(input); } catch (UserNotFoundException ex) { Console.WriteLine(ex.Message); } } while(manager == null); managers.Add(manager); do { PrintMenu(out input); //10 : 로그인 변경 입력시에만 실행 if (input.Equals(10)) { //새로운 아이디로 유저/어드민 객체 생성 do { PrintLoginMenu(out input); try { manager = BillingFactory.GetInstance(input); } catch (UserNotFoundException ex) { Console.WriteLine(ex.Message); } } while (manager == null); managers.Add(manager); } //입력받은 메뉴실행 //managers는 그동안 모든 회원들의 정보가 담겨있음 //manager 는 현재 로그인된 계정 DoMenu(manager, input, managers); } while (!input.Equals("11")); }
public WorkTicketController( ApplicationContext context, BillingAdaptor billingAdaptor, BillingFacade billingFacade, BillingFactory billingFactory ) { _context = context; _billingAdaptor = billingAdaptor; _billingFacade = billingFacade; _billingFactory = billingFactory; }
private void listBills_SelectedIndexChanged(object sender, EventArgs e) { var company = (Company)listCompanies.SelectedItem; if (listAgreements.SelectedItem == null) { return; } var lastAgreement = uof.Agreements.Find(z => z.CompanyId == company.CompanyID).OrderBy(z => z.Date).Last(); var currentBilling = BillingFactory.GetBillingType(lastAgreement.Billing); var bill = ((Bill)listBills.SelectedItem); result.Text = "Оплата с " + currentBilling.GetFirstDate(bill.Date).ToShortDateString() + " по " + currentBilling.GetLastDate(bill.Date).ToShortDateString(); }