public StepLanguage GetStepLanguage(int tutorialId, int stepNr, int languageId)
 {
     /*
      * select * from StepLanguage sl join step s on sl.step_id = s.id
      * join TutorialLanguage tl on sl.tutorial_language_id = tl.id
      * where tl.tutorial_id = #{tutorialId} and tl.languageId = #{languageId} and s.tutorial_id = #{tutorialId} and s.stepNr = #{stepNr}
      */
     try
     {
         StepLanguage step =
             (from sl in dbContext.StepLanguage
              join s in dbContext.Steps on sl.StepId equals s.Id
              join tl in dbContext.TutorialLanguages on sl.TutorialLanguageId equals tl.Id
              where tl.TutorialId == tutorialId && tl.LanguageId == languageId &&
              s.TutorialId == tutorialId && s.StepNumber == stepNr
              select new StepLanguage()
         {
             Id = sl.Id,
             Title = sl.Title,
             StepId = sl.StepId,
             Text = sl.Text,
             AudioUrl = sl.AudioUrl,
             TutorialLanguageId = sl.TutorialLanguageId
         }).First();
         return(step);
     }
     catch (InvalidOperationException e)
     {
         throw new NotFoundException();
     }
 }
 public ActionResult <Step> GetStep([FromRoute] int tutorialId, [FromRoute] int stepNr,
                                    [FromQuery] int languageId)
 {
     try
     {
         StepLanguage res = _tutorialStepService.GetStepLanguage(tutorialId, stepNr, languageId);
         return(Ok(res));
     }
     catch (NotFoundException)
     {
         return(NotFound());
     }
 }