public void CreateAnswer(int questionId, string answer, int answererId, AnswerState answerState)
        {
            Validation.IdCheck(answererId);
            Validation.IdCheck(questionId);
            Validation.StringCheck(answer);

            using (var ctx = new IntelliCloudContext())
            {

                AnswerEntity answerEntity = new AnswerEntity();

                answerEntity.AnswerState = answerState;
                answerEntity.Content = answer;
                answerEntity.CreationTime = DateTime.UtcNow;

                UserEntity user = ctx.Users.SingleOrDefault(ld => ld.Id == answererId);

                if (user == null)
                    throw new NotFoundException("No user entity exists with the specified ID.");

                answerEntity.User = user;
                // TODO link answer to question and generate a feedbackToken using GUID (can both be set in the question).
                // TODO set IsPrivate based on private settings in question.
                answerEntity.IsPrivate = false;

                // TODO determine real language 
                LanguageDefinitionEntity languageDefinition = ctx.LanguageDefinitions.SingleOrDefault(ld => ld.Name.Equals("English"));

                if (languageDefinition == null)
                    throw new NotFoundException("No languageDefinition entity exists with the specified ID.");

                answerEntity.LanguageDefinition = languageDefinition;

                ctx.Answers.Add(answerEntity);

                ctx.SaveChanges();

            }

            // TODO put the SendAnswerFactory in the BaseManager.
            // TODO send the answer using the this.SendAnswerFactory.LoadPlugin(question.Source.Source.SourDefinition).SendAnswer(question, answer) method.
        }
        /// <summary>
        /// This method adds a new question to the database and saves this in a variable
        /// </summary>
        private void initializeTestData()
        {
            using (IntelliCloudContext ctx = new IntelliCloudContext())
            {
                UserEntity newEmployee = new UserEntity();
                newEmployee.CreationTime = DateTime.UtcNow;
                newEmployee.FirstName = "employee";
                newEmployee.Type = Common.DataTransfer.UserType.Employee;

                ctx.Users.Add(newEmployee);
                ctx.SaveChanges();

                this.employee = newEmployee;

                AnswerEntity newAnswer = new AnswerEntity();
                newAnswer.CreationTime = DateTime.UtcNow;
                newAnswer.Content = "Integration test for answer";
                newAnswer.AnswerState = AnswerState.UnderReview;
                newAnswer.IsPrivate = false;
                newAnswer.LanguageDefinition = new LanguageDefinitionEntity() {Name = "Dutch", ResourceName = "NL"};
                newAnswer.User = newEmployee;

                ctx.Answers.Add(newAnswer);
                ctx.SaveChanges();

                this.answer = newAnswer;

                ReviewEntity newReview = new ReviewEntity();
                newReview.CreationTime = DateTime.UtcNow;
                newReview.Content = "Integration test for review";
                newReview.ReviewState = ReviewState.Open;
                newReview.User = newEmployee;
                newReview.Answer = newAnswer;

                ctx.Reviews.Add(newReview);
                ctx.SaveChanges();

                this.review = newReview;

            }
        }
        /// <summary>
        /// Converts an AnswerEntity to an Answer.
        /// </summary>
        /// <param name="entity">The AnswerEntity that has to be converted.</param>
        /// <returns>The Answer object.</returns>
        public Answer AnswerEntityToAnswer(AnswerEntity entity)
        {
            Answer answer = new Answer();

            answer.Id = entity.Id;
            answer.CreationTime = entity.CreationTime;
            answer.Content = entity.Content;
            answer.AnswerState = entity.AnswerState;
            answer.User = UserEntityToUser(entity.User);

            return answer;
        }