Esempio n. 1
0
        static void Main(string[] args)
        {
            IUnitOfWork UnitOfWork = new SQLUnitOfWork(new EmployeeContext());

            IList <Employee> _Employees = new List <Employee>();

            _Employees.Add(new Employee {
                EmployeeName = "Jim Lee", Salary = 6000
            });
            _Employees.Add(new Employee {
                EmployeeName = "Jannet Smith", Salary = 7000
            });
            _Employees.Add(new Employee {
                EmployeeName = "Leonor Jordan", Salary = 8000
            });

            UnitOfWork.Departments.Add(new Department
            {
                DepartmentName = "R&D",
                Employees      = _Employees
            });
            UnitOfWork.Commit();

            UnitOfWork.ComputePayroll();
            UnitOfWork.Commit();

            //Let Display the computed salaries to test if it works.
            //You can refactor this and have it as method of IUnitWork.
            //This is for demo purpose only.

            var     _Department     = "";
            var     _EmployeeName   = "";
            decimal _Salary         = 0;
            decimal _StateTax       = 0;
            decimal _StateInsurance = 0;
            decimal _NetPay         = 0;

            Console.WriteLine("=======================================================================");
            foreach (var department in UnitOfWork.Departments.Query())
            {
                _Department = department.DepartmentName;
                foreach (var employee in department.Employees)
                {
                    _EmployeeName = employee.EmployeeName;
                    _Salary       = (decimal)employee.Salary;


                    foreach (var payroll in employee.Payrolls)
                    {
                        _StateTax       = (decimal)payroll.StateTax;
                        _StateInsurance = (decimal)payroll.StateInsurance;
                        _NetPay         = (decimal)payroll.NetPay;
                        Console.WriteLine(String.Format("{0} | {1} | {2:C2} | {3:C2} | {4 :C2} | {5:C2}", _Department, _EmployeeName, _Salary, _StateTax, _StateInsurance, _NetPay));
                    }
                }
            }
            Console.WriteLine("=======================================================================");
        }
Esempio n. 2
0
        public void UOW() // should be within one transaction unit
        {
            CustomerDbObject cust = new Customer();

            cust.CustomerName = "sample customer";
            CustomerDbObject lead = new Lead();

            lead.CustomerName = "sample lead";

            IRepositoryDAL <CustomerDbObject> dal = DALFactory.CreateCustomerDAL(DALType.ADOSQL);
            IUnitOfWork uow = new SQLUnitOfWork(GlobalConnectionString.ConnString);

            dal.SetUnitWork(uow);
            dal.Add(cust);
            try
            {
                uow.Commit();
            }
            catch (Exception)
            {
                uow.RollBack();
            }

            IRepositoryDAL <CustomerDbObject> dal2 = DALFactory.CreateCustomerDAL(DALType.EF);
            IUnitOfWork uow2 = new EFUnitOfWork(GlobalConnectionString.ConnString);

            dal2.SetUnitWork(uow2);
            dal2.Add(lead);
            dal2.Add(cust);
            try
            {
                uow2.Commit();
            }
            catch (Exception)
            {
                uow2.RollBack();
            }
        }