예제 #1
0
        public PayrollControllerTest()
        {
            _now = DateTime.Now;
            _now_fail = DateTime.Now.AddMinutes(-5);
            _payroll = MockData.Payroll;
            _payroll_fail = new Payroll();
            _mgr = Substitute.For<IPayrollManager>();
            _mgr.GetPayroll(_now).Returns(MockData.Payroll);
            _mgr.GetPayroll(_now_fail).Returns(x => { throw new Exception("Wth?"); });
            _mgr.When(x => x.SavePayroll(_payroll));
            _mgr.When(x => x.SavePayroll(_payroll_fail))
                .Do(x => { throw new Exception("Wth?"); });
            //_mgr.SavePayroll(_payroll);

            _container = new WindsorContainer();
            _container
                .Register(Component.For<IPayrollManager>()
                    .Instance(_mgr)
                )
                .Register(Component.For<PayrollController>()
                    .OnCreate((kernel, instance) => {
                        instance.Request = new System.Net.Http.HttpRequestMessage();
                        instance.Configuration = new System.Web.Http.HttpConfiguration();
                    })                            
                );

            _controller = _container.Resolve<PayrollController>();
        }
예제 #2
0
        public void SavePayroll(Payroll payroll)
        {
			foreach (EmployeePayroll pr in payroll.Employees)
			{
                if (pr.Dirty)
                {
                    foreach (DailyGross dg in pr.Grosses)
                    {
                        if (dg.Dirty)
                        {
                            if (dg.DailyGrossID == null || dg.DailyGrossID.Equals(Guid.Empty))
								_dgrepos.Insert(pr.Employee, dg);
                            else
								_dgrepos.Update(pr.Employee, dg);
                            dg.Dirty = false;
                        }
                    }
                }
			}
        }
예제 #3
0
        public Payroll GetPayroll(DateTime dt)
        {
            var ww = dt.WorkWeek();

			Payroll payroll = new Payroll {
				StartTDS = ww.Start,
				EndTDS = ww.End,
				Employees = new List<EmployeePayroll>()
			};
			
            var employees = _emprepos.Get();            
			foreach (Employee emp in employees)
			{
                EmployeePayroll pr = new EmployeePayroll(emp, ww.Start);                
                //pr.Rent = emp.EffectiveRent(start);                
                pr.Grosses = LoadDailyGrosses(emp, ww.Start, ww.End);
				
				payroll.Employees.Add(pr);
			}

			return payroll;
        }