Пример #1
0
        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);
        }
Пример #2
0
        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());
        }