Пример #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to the payslip generator!\n");
            var payslipInput = new PayslipInput();
            var name         = payslipInput.PromptName();
            var surname      = payslipInput.PromptSurname();
            var salary       = payslipInput.PromptSalary();
            var superRate    = payslipInput.PromptSuperRate();
            var startDate    = payslipInput.PromptStartDate();
            var endDate      = payslipInput.PromptEndDate();

            Employee employee = new Employee(name, surname, salary, superRate);

            TaxBracket[]   taxBrackets    = new TaxBracketParser().ParseCSV("/Users/Tom.vanDinther/Documents/payslip-kata/tax_brackets.csv"); //TODO: Use absolute path in Rider. Issue: Cannot run.
            PayslipFactory payslipFactory = PayslipFactory.GetInstance();

            payslipFactory.SetTaxBrackets(taxBrackets);
            payslipFactory.SetStartDate(startDate);
            payslipFactory.SetEndDate(endDate);
            Payslip payslip = payslipFactory.GetPayslip(employee);

            Console.WriteLine("Your payslip has been generated:\n");
            PrintPayslip(payslip);
            Console.WriteLine("\nThank you for using MYOB!");
        }
Пример #2
0
 // Post api/<controller>
 public IHttpActionResult CreatePaySlip(Employee employee)
 {
     if (!ModelState.IsValid || employee != null)
     {
         PayslipAbstractFactory payslipFactory = new PayslipFactory();
         var payslip = payslipFactory.GetPaySlip(TaxMethod.Austerlia);
         return(Ok(payslip.GenerateEmployeePayslip(employee)));
     }
     else
     {
         return(NotFound());
     }
 }
 public HttpResponseMessage CreatePaySlip([FromBody] Employee employee)
 {
     this.Validate(employee);
     if (!ModelState.IsValid)
     {
         return(Request.CreateResponse(HttpStatusCode.BadRequest));
     }
     if (employee != null)
     {
         PayslipAbstractFactory payslipFactory = new PayslipFactory();
         var payslip = payslipFactory.GetPaySlip(TaxMethod.Austerlia);
         return(Request.CreateResponse(HttpStatusCode.OK, payslip.GenerateEmployeePayslip(employee), Configuration.Formatters.JsonFormatter));
     }
     else
     {
         return(Request.CreateResponse(HttpStatusCode.NotFound));
     }
 }