/// <summary> /// Creates the specified bonus aggregate from DTO object. /// </summary> /// <param name="bonusDto">The bonus DTO object.</param> /// <returns> /// BonusAggregate. /// </returns> /// <exception cref="System.ArgumentNullException">Create;Can not create new BonusAggregate from null Dto object</exception> public BonusAggregate Create(BonusDto bonusDto) { if (bonusDto == null) throw new ArgumentNullException("Create", "can not create new BonusAggregate from null DTO object"); Employee employee = EmployeesRepository.GetById(bonusDto.EmployeeId); return new BonusAggregate(employee, bonusDto.Date, bonusDto.Amount, bonusDto.Comment, bonusDto.IsActive, bonusDto.BonusId); }
public JsonResult Create(BonusDto bonusDto) { BonusAggregate bonus; if (bonusDto.Amount <= 0) throw new ArgumentOutOfRangeException("Amount should be more than 0"); if (bonusDto.EmployeeId <= 0) throw new ArgumentNullException("You should specify an existing employee"); using (var dbContext = new DatabaseContext()) { BonusesRepository = new BonusesRepository(dbContext); var employeeRepository = new EmployeesRepository(dbContext); bonus = new BonusFactory(employeeRepository).Create(bonusDto); BonusesRepository.Save(bonus); } return Json(bonus); }
public JsonResult Edit(BonusDto bonusDto) { if (bonusDto == null) throw new ArgumentNullException("bonusDto can not be null in controller Edit"); Employee employee = null; BonusAggregate bonus = null; using (var dbContext = new DatabaseContext()) { if (bonusDto.EmployeeId != 0) { var employeeRepository = new EmployeesRepository(dbContext); employee = employeeRepository.GetById(bonusDto.EmployeeId); } BonusesRepository = new BonusesRepository(dbContext); bonus = BonusesRepository.GetById(bonusDto.BonusId); bonus.Comment = bonusDto.Comment; bonus.Amount = bonusDto.Amount; bonus.Date = bonusDto.Date; bonus.IsActive = bonusDto.IsActive; if (employee != null && employee.EmployeeId != bonus.EmployeeId) { bonus.Employee = employee; } BonusesRepository.Save(bonus); } return Json(bonus); }