public IHttpActionResult Post(AbsenceWriteModel absenceWriteModel)
        {
            // find employee
            var employee = EmployeeRepository.FindById(absenceWriteModel.Employee.Id);

            // validate existence of employee
            if (employee == null)
                return BadRequest(string.Format("Cannot find employee with id '{0}'.", absenceWriteModel.Employee.Id));

            // create new absence
            var absence = new Absence(employee,
                (AbsenceType)Enum.Parse(typeof(AbsenceType), absenceWriteModel.AbsenceType),
                absenceWriteModel.BeginDate, absenceWriteModel.EndDate);
            absence.Remark = absenceWriteModel.Remark;

            // add absence
            AbsenceRepository.Add(absence);

            // map to model
            var absenceReadModel = Mapper.Map<AbsenceReadModel>(absence);

            return CreatedAtRoute("PostAbsence", new { id = absenceReadModel.Id }, absenceReadModel);
        }
        public IHttpActionResult Put(int id, AbsenceWriteModel absenceWriteModel)
        {
            // find employee
            var employee = EmployeeRepository.FindById(absenceWriteModel.Employee.Id);

            // validate existence of employee
            if (employee == null)
                return BadRequest(string.Format("Cannot find employee with id '{0}'.", absenceWriteModel.Employee.Id));

            // find absence
            var absence = AbsenceRepository.FindById(id);

            // existence check
            if (absence == null)
                return NotFound();

            // map from model
            absence.Employee = employee;
            absence.AbsenceType = (AbsenceType)Enum.Parse(typeof(AbsenceType), absenceWriteModel.AbsenceType);
            absence.BeginDate = absenceWriteModel.BeginDate;
            absence.EndDate = absenceWriteModel.EndDate;
            absence.Remark = absenceWriteModel.Remark;

            return Ok();
        }