Пример #1
0
        // GET: Employees/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Employee employee = await employeeRepository.GetByIdAsync(id.Value);

            if (employee == null)
            {
                return(HttpNotFound());
            }

            if (DateTime.Now >= DateTime.Parse("07/01/2017"))
            {
                bonusCalculator = new FY18BonusCalculator();
            }
            else
            {
                bonusCalculator = new FY17BonusCalculator();
            }

            ViewBag.BonusAmount          = bonusCalculator.GetBonusPercentage(employee) * employee.Salary / 100;
            ViewBag.NextYearProjectBonus = bonusProjector.GetExpectedBonus(employee.Salary);


            return(View(employee));
        }
Пример #2
0
        /// <summary>
        /// Virtual method for write-off Bank Account
        /// </summary>
        /// <param name="amount">Amount value</param>
        /// <returns>Amount after write-off</returns>
        public decimal Withdraw(BankAccount account, decimal amount, IBonusCalculator bonusCalculator)
        {
            if (account.IsValidBalance(account, amount))
            {
                account.BonusPoints -= bonusCalculator.CalculateBonusPoints(amount, account);
                account.Amount      -= amount;
            }

            return(account.Amount);
        }
Пример #3
0
        /// <summary>
        /// Virtual method for write-off from Bank Account
        /// </summary>
        /// <param name="amount">Amount value</param>
        /// <returns>Amount after write-off</returns>
        public decimal Withdraw(BankAccount account, decimal amount, IBonusCalculator bonusCalculator)
        {
            if (!account.IsValidBalance(account, amount))
            {
                throw new ArgumentException("Balance is invalid for withdraw operation");
            }
            else
            {
                account.BonusPoints -= bonusCalculator.CalculateBonusPoints(amount, account);
                account.Amount      -= amount;
            }

            return(account.Amount);
        }
Пример #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AccountService"/> class.
        /// </summary>
        /// <param name="repository"><see cref="IAccountRepository"/> instance.</param>
        /// <param name="bonusCalculator"><see cref="IBonusCalculator"/> instance.</param>
        public AccountService(IAccountRepository repository, IBonusCalculator bonusCalculator)
        {
            if (repository is null)
            {
                throw new ArgumentNullException(nameof(repository));
            }

            if (bonusCalculator is null)
            {
                throw new ArgumentNullException(nameof(bonusCalculator));
            }

            this.repository      = repository;
            this.bonusCalculator = bonusCalculator;
        }
 public BonusPoolController(IHrRepository hrRepository, IBonusCalculator bonusCalculator)
 {
     _hrRepository    = hrRepository;
     _bonusCalculator = bonusCalculator;
 }
 /// <summary>
 /// constructor, coefficient initialization
 /// </summary>
 public GoldCash(IBonusCalculator calculator)
 {
     BonusesCalculator = calculator;
     Amount            = 0.0;
 }
Пример #7
0
 public BonusAPI(IBonusCalculator cal)
 {
     _cal = cal;
 }
 public EmployeesController(IBonusCalculator bonusCalculator, IEmployeeService employeeService)
 {
     _bonusCalculator = bonusCalculator ?? throw new ArgumentNullException(nameof(bonusCalculator));
     _employeeService = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
 }
Пример #9
0
 public AccountService(IUnitOfWork unitOfWork, IBonusCalculator bonusCalculator)
 {
     _unitOfWork      = unitOfWork;
     _bonusCalculator = bonusCalculator;
 }
 /// <summary>
 /// constructor, coefficient initialization
 /// </summary>
 public GoldCash(IBonusCalculator calculator, string id)
 {
     BonusesCalculator = calculator;
     Id     = id;
     Amount = 0.0;
 }
Пример #11
0
 /// <summary>
 /// Virtual method for refilling Bank Account
 /// </summary>
 /// <param name="amount">Amount value</param>
 /// <returns>Amount after refilling</returns>
 public decimal Deposit(BankAccount account, decimal amount, IBonusCalculator bonusCalculator)
 {
     account.BonusPoints += bonusCalculator.CalculateBonusPoints(amount, account);
     return(account.Amount += amount);
 }
 /// <summary>
 /// constructor, coefficient initialization
 /// </summary>
 public PlatinumCash(IBonusCalculator calculator)
 {
     BonusesCalculator = calculator;
     Amount            = 0.0;
 }
Пример #13
0
 /// <summary>
 /// Change bonus
 /// </summary>
 /// <param name="balanceDifference">Balance difference</param>
 /// <param name="balance">Account balance</param>
 /// <param name="calculator">Calculator that get the change in bonus points</param>
 public void ChangeBonus(decimal balanceDifference, decimal balance, IBonusCalculator calculator)
 {
     Bonus += calculator.GetBonusDifference(balanceDifference, balance, DifferenceCost, BalanceCost);
 }
 public BonusPoolController(IEmployeeService employeeService, IBonusCalculator bonusCalculator)
 {
     _employeeService = employeeService;
     _bonusCalculator = bonusCalculator;
 }
Пример #15
0
 public AccountService(IRepository repository, IBonusCalculator bonusCalculator)
 {
     this.accountRepository = repository;
     this.bonusCalculator   = bonusCalculator;
 }
Пример #16
0
 public void AddMoney(decimal sum, IBonusCalculator calculator)
 {
     this.Balance += sum;
     this.Bonus   += calculator.CalculateBonus(sum);
 }