public async Task <IHttpActionResult> PutSelectedAnswer(long id, SelectedAnswer selectedAnswer)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != selectedAnswer.SelectedAnswerID)
            {
                return(BadRequest());
            }

            db.Entry(selectedAnswer).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SelectedAnswerExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public async Task <IHttpActionResult> GetSelectedAnswer(long id)
        {
            SelectedAnswer selectedAnswer = await db.SelectedAnswers.FindAsync(id);

            if (selectedAnswer == null)
            {
                return(NotFound());
            }

            return(Ok(selectedAnswer));
        }
        public async Task <IHttpActionResult> PostSelectedAnswer(SelectedAnswer selectedAnswer)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.SelectedAnswers.Add(selectedAnswer);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = selectedAnswer.SelectedAnswerID }, selectedAnswer));
        }
Esempio n. 4
0
        public void DeleteAnswer()
        {
            if (SelectedAnswer != null)
            {
                Answer answer = SelectedAnswer.ToPoco();

                AnswerRepository.Delete(answer.AnswerID);

                SelectedQuestion.Answers.Remove(answer);
                Answers.Remove(SelectedAnswer);
                AnswerRepository.Save();
                RaisePropertyChanged("Answers");
            }
        }
        public async Task <IHttpActionResult> DeleteSelectedAnswer(long id)
        {
            SelectedAnswer selectedAnswer = await db.SelectedAnswers.FindAsync(id);

            if (selectedAnswer == null)
            {
                return(NotFound());
            }

            db.SelectedAnswers.Remove(selectedAnswer);
            await db.SaveChangesAsync();

            return(Ok(selectedAnswer));
        }
 private void AddAuthTokens(object o, UserLoggedInEventArg args)
 {
     User.SetAuthToken(args.User.AuthToken);
     Answer.SetAuthToken(args.User.AuthToken);
     Question.SetAuthToken(args.User.AuthToken);
     Quiz.SetAuthToken(args.User.AuthToken);
     Study.SetAuthToken(args.User.AuthToken);
     UserType.SetAuthToken(args.User.AuthToken);
     Course.SetAuthToken(args.User.AuthToken);
     Faculty.SetAuthToken(args.User.AuthToken);
     Rating.SetAuthToken(args.User.AuthToken);
     Semester.SetAuthToken(args.User.AuthToken);
     SelectedAnswer.SetAuthToken(args.User.AuthToken);
     QuizUserStatistic.SetAuthToken(args.User.AuthToken);
 }
Esempio n. 7
0
        private SelectedAnswer CacheAnswer(Player player, SelectedAnswer selectedAnswer)
        {
            if (!_playerAnswers.ContainsKey(player))
            {
                _playerAnswers.Add(player, new List <SelectedAnswer>());
            }

            var answers = _playerAnswers[player];

            var existing = answers.FirstOrDefault(p => p.QuestionId == selectedAnswer.QuestionId);

            if (existing != null)
            {
                return(existing);
            }

            answers.Add(selectedAnswer);

            return(selectedAnswer);
        }
Esempio n. 8
0
        public override bool Save()
        {
            ClearFeedback();
            bool result = false;

            try
            {
                if (FormContextAnswer == FormContext.Create)
                {
                    //create new  answer
                    result = User.AnswerQuestion(SelectedAnswer, UnitOfWork);
                    UpdateAnswersList(SelectedQuestion, AnswerSearchTxt);
                    FormContextAnswer = FormContext.Update;//selected item now has an id go to update
                    ShowFeedback($"Successfully created: {SelectedAnswer.Id}.", FeedbackType.Success);
                }
                else
                {
                    //Update Selected Answer
                    result = SelectedAnswer.ValidateAnswer(UnitOfWork);
                    if (result)
                    {
                        result = (UnitOfWork.Complete() > 0) ? true : false;
                        ShowFeedback($"Successfully updated: {SelectedAnswer.Id}", FeedbackType.Success);
                    }
                }
            }
            catch (DbUpdateException ex)
            {
                ShowFeedback(ex.Message, FeedbackType.Error);
            }
            catch (SqlException ex)
            {
                ShowFeedback(ex.Message, FeedbackType.Error);
            }
            catch (Exception ex)
            {
                ShowFeedback(ex.Message, FeedbackType.Error);
            }

            return(result);
        }
Esempio n. 9
0
        private void PoolingUpdate(object obj)
        {
            App.Current.Dispatcher.Invoke((Action) delegate // <--- HERE
            {
                try
                {
                    List <int> originalQids = Questions.Select(q => q.Id).ToList();
                    List <int> originalAids = Answers.Select(a => a.Id).ToList();

                    UpdateQuestionsList(QuestionSearchTxt);
                    if (SelectedAnswer != null)
                    {
                        Answer backup = new Answer();
                        backup.ShallowCopy(SelectedAnswer);
                        UpdateAnswersList(SelectedQuestion, AnswerSearchTxt);
                        OnPropertyChanged(nameof(SelectedQuestion));

                        SelectedAnswer.ShallowCopy(backup);
                        OnPropertyChanged(nameof(SelectedAnswer));

                        //thread safe way to get record updates pulled from database (doesn't do selected Q or A)
                        if (QandAMode == QandAMode.Answer)
                        {
                            if (Answers != null)
                            {
                                foreach (Answer a in Answers)
                                {
                                    if (a.Id != SelectedAnswer.Id)
                                    {
                                        UnitOfWork.Reload(a);
                                    }
                                }
                                OnPropertyChanged(nameof(AVisConDTO));
                            }
                        }
                        else
                        {
                            if (Questions != null)
                            {
                                foreach (Question q in Questions)
                                {
                                    if (q.Id != SelectedQuestion.Id)
                                    {
                                        UnitOfWork.Reload(q);
                                    }
                                }
                                OnPropertyChanged(nameof(AVisConDTO));
                            }
                        }
                    }
                    else
                    {
                        UpdateAnswersList(SelectedQuestion, AnswerSearchTxt);
                    }
                    List <int> newQIds = Questions.Select(q => q.Id).ToList();
                    List <int> newAIds = Answers.Select(a => a.Id).ToList();
                    SortNotifications(originalQids, originalAids, newQIds, newAIds);
                    UpdateCommentsList();
                }
                catch (Exception ex)
                {
                    ShowFeedback($"Error updating from database:\n{ex.Message}", FeedbackType.Error);
                }
            });
        }