예제 #1
0
 //------
 public Employee(AbstractEmployee parnt, string nm, float salry)
 {
     subordinates = new ArrayList();
     name         = nm;
     salary       = salry;
     parent       = parnt;
 }
예제 #2
0
        //---------------
        private void buildEmployeeList()
        {
            prez     = new Boss("CEO", 200000);
            marketVP = new Boss("Marketing VP", 100000);
            prez.add(marketVP);
            salesMgr = new Boss("Sales Mgr", 50000);
            advMgr   = new Boss("Advt Mgr", 50000);
            marketVP.add(salesMgr);
            marketVP.add(advMgr);
            prodVP = new Boss("Production VP", 100000);
            prez.add(prodVP);
            advMgr.add("Secy", 20000);

            //add salesmen reporting to sales manager
            for (int i = 1; i <= 5; i++)
            {
                salesMgr.add("Sales" + i.ToString(), rand_sal(30000));
            }

            prodMgr = new Boss("Prod Mgr", 40000);
            shipMgr = new Boss("Ship Mgr", 35000);
            prodVP.add(prodMgr);
            prodVP.add(shipMgr);

            for (int i = 1; i <= 3; i++)
            {
                shipMgr.add("Ship" + i.ToString(), rand_sal(25000));
            }
            for (int i = 1; i <= 4; i++)
            {
                prodMgr.add("Manuf" + i.ToString(), rand_sal(20000));
            }
        }
예제 #3
0
        private void btShowBoss_Click(object sender, System.EventArgs e)
        {
            EmpNode node;

            node = (EmpNode)EmpTree.SelectedNode;
            AbstractEmployee emp    = node.getEmployee();
            string           bosses = "";

            while (emp != null)
            {
                bosses += emp.getName() + "\n";
                emp     = emp.getBoss();
            }
            MessageBox.Show(null, bosses, "Reporting chain");
        }
예제 #4
0
        //------
        private void addNodes(EmpNode nod, AbstractEmployee emp)
        {
            AbstractEmployee newEmp;
            EmpNode          newNode;
            IEnumerator      empEnum;

            empEnum = emp.getSubordinates();

            while (empEnum.MoveNext())
            {
                newEmp  = (AbstractEmployee)empEnum.Current;
                newNode = new EmpNode(newEmp);
                nod.Nodes.Add(newNode);
                addNodes(newNode, newEmp);
            }
        }
        // GET: api/Employees/5
        public async Task <String> Get(int id)
        {
            string employeesJson = await client.GetEmployees();

            List <AbstractEmployee> employees = new List <AbstractEmployee>();

            List <RawEmployee> rawEmployees = JsonConvert.DeserializeObject <List <RawEmployee> >(employeesJson);

            RawEmployee rawEmployee = (from rawEmp in rawEmployees where rawEmp.Id == id select rawEmp).FirstOrDefault();

            if (rawEmployee != null)
            {
                AbstractEmployee employee = factory.BuildEmployee(rawEmployee);
                employees.Add(employee);
            }
            return(JsonConvert.SerializeObject(employees));
        }
        // GET: api/Employees
        public async Task <String> Get()
        {
            string employeesJson = await client.GetEmployees();

            List <AbstractEmployee> employees = new List <AbstractEmployee>();

            List <RawEmployee> rawEmployees = JsonConvert.DeserializeObject <List <RawEmployee> >(employeesJson);

            foreach (RawEmployee rawEmployee in rawEmployees)
            {
                AbstractEmployee employee = factory.BuildEmployee(rawEmployee);

                employees.Add(employee);
            }

            return(JsonConvert.SerializeObject(employees));
        }
예제 #7
0
        //------
        public override AbstractEmployee getChild()
        {
            bool             found;
            AbstractEmployee tEmp = null;
            IEnumerator      esub;

            if (getName().Equals(getName()))
            {
                return(this);
            }
            else
            {
                found = false;
                esub  = subordinates.GetEnumerator();
                while (!found && esub.MoveNext())
                {
                    tEmp  = (AbstractEmployee)esub.Current;
                    found = (tEmp.getName().Equals(name));
                    if (!found)
                    {
                        if (!tEmp.isLeaf())
                        {
                            tEmp  = tEmp.getChild();
                            found = (tEmp.getName().Equals(name));
                        }
                    }
                }
                if (found)
                {
                    return(tEmp);
                }
                else
                {
                    return(new Employee(null, "New person", 0));
                }
            }
        }
예제 #8
0
 //------
 public virtual void add(AbstractEmployee emp)
 {
     throw new Exception("No subordinates in base employee class");
 }
예제 #9
0
 public UserInfo(AbstractEmployee employee)
 {
     Employee = employee;
 }
예제 #10
0
 public EmpNode(AbstractEmployee aemp) : base(aemp.getName())
 {
     emp = aemp;
 }
예제 #11
0
 public void AddEmployee(AbstractEmployee employee)
 {
     MyEmployees.Add(employee);
 }
예제 #12
0
 public abstract override void seeDanger(AbstractEmployee source, EmployeeIF boss);
예제 #13
0
 public Boss(AbstractEmployee parnt, string name, float salary) : base(parnt, name, salary)
 {
 }
예제 #14
0
 //------
 public override void add(AbstractEmployee emp)
 {
     subordinates.Add(emp);
 }
예제 #15
0
 //------
 public Boss(AbstractEmployee parnt, AbstractEmployee emp) : base(parnt, emp.getName(), emp.getSalary())
 {
 }