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(); }