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()); } }