public IEnumerable <SelectedQuestion> ToSelectedQuestion(GroupedRemainingMovieItem groupedRemainingMovieItem) { var responses = new List <SelectedQuestion>(); groupedRemainingMovieItem.QuestionResponses.ForEach(qr => { responses.Add(new SelectedQuestion() { Questionid = groupedRemainingMovieItem.Question.Id, Questionresponseid = qr.QuestionResponse.Id, Watching = false }); }); return(responses); }
public GroupedRemainingMovieItem Create(IList <RemainingMovieItem> movieItems, Question question) { if (movieItems.Count == 0) { return(new GroupedRemainingMovieItem()); } //TODO: Check if all are same question. log if not var item = new GroupedRemainingMovieItem() { Question = question, QuestionResponses = movieItems.OrderBy(mi => mi.UserName).ToList(), Watched = movieItems.Any(mi => mi.Watched), Watching = movieItems.Any(mi => mi.Watching) }; return(item); }
public ActionResult SetNext([FromBody] GroupedRemainingMovieItem movieItem) { //TODO: Could be made more efficient with long standing sql transactions / batch inserts IEnumerable <SelectedQuestion> prevSelectedQuestions = selectedQuestionDbProvider.GetBy(Tuple.Create("watching", true)); foreach (var selectedQuestion in prevSelectedQuestions) { selectedQuestion.Watching = false; selectedQuestionDbProvider.Update(selectedQuestion); } IEnumerable <SelectedQuestion> newSelectedQuestions = groupedRemainingMovieItemFactory.ToSelectedQuestion(movieItem); foreach (var selectedQuestion in newSelectedQuestions) { selectedQuestion.Watching = true; selectedQuestionDbProvider.Insert(selectedQuestion); } return(Ok()); }