public IHttpActionResult Post(FillOutAnalysisModel model) { try { var context = Repository.HomeContext(); if (model == null) { return(BadRequest("Model is null")); } var analysis = Parser.CreateAnalysis(model, context); var analysisModel = Factory.CreateAnalysisModel(analysis, context); return(Ok(analysisModel)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public Analysis CreateAnalysis(FillOutAnalysisModel model, AppContext context) { var analysisRepo = new Repository <Analysis>(context); var answersRepo = new Repository <Answer>(context); var analysis = new Analysis() { Reviewer = context.Users.FirstOrDefault(u => u.Id == model.UserId), Version = context.Versions.FirstOrDefault(v => v.AnalysisApplicationForm.Id == model.AnalysisId), QuestionsAndAnswers = new List <AnsweredQuestion>() }; var heuristics = context.AnalysisApplicationForms.Find(model.AnalysisId).Heuristics; var defaultAnswer = new Answer() { Description = "", Location = "", Level = 0, Recommendation = "", Answered = false }; analysisRepo.Insert(analysis); foreach (var heuristic in heuristics) { var qa = new AnsweredQuestion() { HeuristicText = heuristic.HeuristicText, HeuristicTitle = heuristic.HeuristicTitle, DatabaseHeuristicId = heuristic.Id }; analysis.QuestionsAndAnswers.Add(qa); } analysisRepo.Update(analysis, analysis.Id); foreach (var question in analysis.QuestionsAndAnswers) { defaultAnswer.QuestionAnswerId = question.Id; defaultAnswer.HeuristicId = question.DatabaseHeuristicId; answersRepo.Insert(defaultAnswer); } analysisRepo.Update(analysis, analysis.Id); return(analysis); }