Exemplo n.º 1
0
        private async Task <PostFeedback> UpdateFeedbackQuestionAndAnswers(PostFeedback postFeedback)
        {
            FeedbackQuestion feedbackQuestion = new FeedbackQuestion();

            feedbackQuestion.Question        = postFeedback.Question;
            feedbackQuestion.QuestionTye     = postFeedback.QuestionTye;
            feedbackQuestion.ParticipantType = postFeedback.ParticipantType;
            feedbackQuestion.Id = postFeedback.Id;

            feedbackQuestion = await _fbQuestionRepository.Update(feedbackQuestion);

            var allOptions = await _fbOptionRepository.GetAll();

            var questionOptions = allOptions.Where(x => x.QuestionId == feedbackQuestion.Id).ToList();

            foreach (FeedbackOption opt in questionOptions)
            {
                await _fbOptionRepository.Delete(opt.Id);
            }
            foreach (string fbOption in postFeedback.FeedbackOptions)
            {
                FeedbackOption option = new FeedbackOption();
                option.Option     = fbOption;
                option.QuestionId = feedbackQuestion.Id;
                await _fbOptionRepository.Add(option);
            }
            return(postFeedback);
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            FeedbackQuestion feedbackQuestion = await feedbackQuestionService.GetFeedbackQuestionByIdAsync(id);

            feedbackQuestionService.Delete(feedbackQuestion);
            return(RedirectToAction("Index"));
        }
Exemplo n.º 3
0
 public FeedbackQuestionViewModel(FeedbackQuestion feedbackQuestion)
 {
     if (feedbackQuestion != null)
     {
         this.Id   = feedbackQuestion.Id;
         this.Name = feedbackQuestion.Name;
     }
 }
 public async Task <ActionResult> Edit([Bind(Include = "Id,Question,Archived,DateLastUpdated,UserLastUpdated,DateCreated,UserCreated")] FeedbackQuestion feedbackQuestion)
 {
     if (ModelState.IsValid)
     {
         feedbackQuestionService.Edit(feedbackQuestion);
         return(RedirectToAction("Index"));
     }
     return(View(feedbackQuestion));
 }
        // GET: FeedbackQuestions/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            FeedbackQuestion feedbackQuestion = await feedbackQuestionService.GetFeedbackQuestionByIdAsync(id);

            if (feedbackQuestion == null)
            {
                return(HttpNotFound());
            }
            return(View(feedbackQuestion));
        }
Exemplo n.º 6
0
        public bool UpdateFeedbackForm(FeedbackFormViewModel item)
        {
            if (item != null)
            {
                FeedbackForm formFromDb = this.context.FeedbackForms.Include(x => x.FeedbackQuestions).SingleOrDefault(x => x.Id == item.Id);
                if (formFromDb != null)
                {
                    formFromDb.DeadlineDate = item.DeadlineDate;
                    formFromDb.Name         = item.Name;

                    foreach (FeedbackQuestion questionFromDb in formFromDb.FeedbackQuestions)
                    {
                        // Найти в новом списке элемент с совпадающим айдишником
                        FeedbackQuestionViewModel newQuestion = item.FeedbackQuestions.SingleOrDefault(q => q.Id == questionFromDb.Id);

                        // если он найден, поместить в уже существующий в базе элемент новые данные
                        if (newQuestion != null)
                        {
                            questionFromDb.Name = newQuestion.Name;
                        }
                        else                         // иначе удалить существующий элемент
                        {
                            formFromDb.FeedbackQuestions.Remove(questionFromDb);
                        }
                    }

                    context.SaveChanges();

                    // Выбрать все вопросы, у которых айди равен -1 (то есть новые) и добавить их в список
                    foreach (FeedbackQuestionViewModel newQuestionVM in item.FeedbackQuestions.Where(i => i.Id == -1))
                    {
                        FeedbackQuestion questionToAdd = new FeedbackQuestion()
                        {
                            Name         = newQuestionVM.Name,
                            FeedbackForm = formFromDb,
                        };
                        formFromDb.FeedbackQuestions.Add(questionToAdd);
                    }
                    context.SaveChanges();
                }
                else
                {
                    return(false);
                }
            }
            return(false);
        }
Exemplo n.º 7
0
        private async Task <PostFeedback> InsertFeedbackQuestionAndAnswers(PostFeedback postFeedback)
        {
            FeedbackQuestion feedbackQuestion = new FeedbackQuestion();

            feedbackQuestion.Question        = postFeedback.Question;
            feedbackQuestion.QuestionTye     = postFeedback.QuestionTye;
            feedbackQuestion.ParticipantType = postFeedback.ParticipantType;

            feedbackQuestion = await _fbQuestionRepository.Add(feedbackQuestion);

            foreach (string fbOption in postFeedback.FeedbackOptions)
            {
                FeedbackOption option = new FeedbackOption();
                option.Option     = fbOption;
                option.QuestionId = feedbackQuestion.Id;
                await _fbOptionRepository.Add(option);
            }
            return(postFeedback);
        }
Exemplo n.º 8
0
 public bool AddFeedbackForm(FeedbackFormViewModel item)
 {
     if (item != null)
     {
         FeedbackForm newFeedbackForm = new FeedbackForm
         {
             DeadlineDate = item.DeadlineDate,
             Name         = item.Name,
         };
         foreach (FeedbackQuestionViewModel question in item.FeedbackQuestions)
         {
             FeedbackQuestion feedbackQuestion = new FeedbackQuestion
             {
                 Name = question.Name,
             };
             newFeedbackForm.FeedbackQuestions.Add(feedbackQuestion);
         }
         this.context.FeedbackForms.Add(newFeedbackForm);
         this.context.SaveChanges();
         return(true);
     }
     return(false);
 }
Exemplo n.º 9
0
 public async void Delete(FeedbackQuestion feedbackQuestion)
 {
     db.FeedbackQuestions.Remove(feedbackQuestion);
     await db.SaveChangesAsync();
 }
Exemplo n.º 10
0
 public async void Edit(FeedbackQuestion feedbackQuestion)
 {
     db.Entry(feedbackQuestion).State = EntityState.Modified;
     await db.SaveChangesAsync();
 }
Exemplo n.º 11
0
 public async void Post(FeedbackQuestion feedbackQuestion)
 {
     db.FeedbackQuestions.Add(feedbackQuestion);
     await db.SaveChangesAsync();
 }