public IHttpActionResult PostEmployeeContact(EmployeeContactDTO employeeContact) { if (employeeContact == null || !ModelState.IsValid) { return(BadRequest(ModelState)); } try { EmployeeContact contact = employeeContact.FromDTO(); UnitOfWork unitOfWork = new UnitOfWork(factory); contact.Id = contact.NewId(unitOfWork); unitOfWork.EmployeeContactsRepository.Insert(contact); unitOfWork.Save(); EmployeeContactDTO dto = unitOfWork.EmployeeContactsRepository.Get(d => d.Id == contact.Id, includeProperties: "ContactType").FirstOrDefault().ToDTO(); return(CreatedAtRoute("GetEmployeeContact", new { id = dto.Id }, dto)); } catch (NotFoundException nfe) { return(NotFound()); } catch (ConflictException ce) { return(Conflict()); } catch (Exception e) { return(BadRequest(e.Message)); } }