public HttpResponseMessage CreateAppointment(AppointmentModel model, [ValueProvider(typeof(HeaderValueProviderFactory <string>))] string accessToken) { return(this.ExecuteOperationAndHandleExceptions(() => { var context = new TasksManagerDbContext(); var meUser = this.GetUserByAccessToken(accessToken, context); this.ValidateAppointment(model); var appointmentEntity = model.ToEntity(); appointmentEntity.Owner = meUser; appointmentEntity.State = context.States.FirstOrDefault(st => st.Value == "upcomming"); meUser.Appointments.Add(appointmentEntity); context.SaveChanges(); var responseModel = new AppointmentCreatedModel() { Id = appointmentEntity.Id, Owner = appointmentEntity.Owner.Username }; var response = this.Request.CreateResponse(HttpStatusCode.Created, responseModel); return response; })); }