/// <summary>
        /// Generates a payslip as per the payslip request
        /// </summary>
        /// <param name="payslipRequest"></param>
        /// <returns></returns>
        public PayslipResponse GeneratePaySlip(PayslipRequest payslipRequest)
        {
            var payslipMonth = payslipRequest.PayStartPeriod;

            var grossIncome = (int)Math.Round((decimal)(payslipRequest.AnnualSalary / 12));
            var super       = (int)Math.Round((decimal)(grossIncome * payslipRequest.SuperRate / 100));
            var payPeriod   = string.Format("1 {0} - {1} {0}", payslipMonth.ToString("MMMM"),
                                            new DateTime(payslipMonth.Year, payslipMonth.Month, 1).AddMonths(1).AddDays(-1).Day);
            var taxBracket = _taxService.GetTaxBracket(payslipRequest.AnnualSalary);
            var incomeTax  = _taxService.CalculateTaxPerMonth(payslipRequest.AnnualSalary, taxBracket);
            var netIncome  = grossIncome - incomeTax;

            return(new PayslipResponse()
            {
                FullName = string.Format("{0} {1}", payslipRequest.FirstName.Trim(), payslipRequest.LastName.Trim()),
                GrossIncome = grossIncome,
                IncomeTax = incomeTax,
                NetIncome = netIncome,
                Super = super,
                PayPeriod = payPeriod
            });
        }