コード例 #1
0
        public IHttpActionResult PostSurveyUser(SurveyUser surveyUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.SurveyUsers.Add(surveyUser);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (SurveyUserExists(surveyUser.SurveyUserId))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = surveyUser.SurveyUserId }, surveyUser));
        }
コード例 #2
0
        public async Task <IActionResult> PutSurveyUser([FromRoute] int id, [FromBody] SurveyUser surveyUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != surveyUser.SurveyId)
            {
                return(BadRequest());
            }

            _context.Entry(surveyUser).State = EntityState.Modified;

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

            return(NoContent());
        }
コード例 #3
0
        private bool FilledSurvey(SurveyUser surveyUser)
        {
            bool filled = false;

            foreach (Question q in surveyUser.Survey.Questions)
            {
                foreach (ClosedAnswer c in q.ClosedAnswers)
                {
                    if (c.Response)
                    {
                        filled = true;
                    }
                    else
                    {
                        filled = false;
                    }
                }

                if (!q.OpenAnswer.Response.Equals(""))
                {
                    filled = true;
                }
            }

            return(filled);
        }
コード例 #4
0
        public IActionResult BeginSurvey(string guid, string emailId)
        {
            Survey sur = _dBContext.Survey.Where(x => x.SurveyGuid == guid).FirstOrDefault();

            emailId = Convert.ToString(emailId).ToLower();
            if (sur == null)
            {
                return(BadRequest(Messages.SurveyNotFoundError));
            }

            if (sur.Enddate < DateTime.UtcNow)
            {
                return(BadRequest(Messages.SurveyEnded));
            }

            bool checkSurveyEmail = _dBContext.SurveyUser.Any(x => x.SurveyId == sur.Surveyid && x.SurveyUserEmail.ToLower().Equals(emailId));

            if (checkSurveyEmail && Convert.ToBoolean(sur.Emailidrequired) && !string.IsNullOrEmpty(emailId))
            {
                return(BadRequest(Messages.SurveyAlreadyTaken));
            }

            SurveyUser surveyUser = new SurveyUser();

            surveyUser.SurveyId         = sur.Surveyid;
            surveyUser.SurveyUserEmail  = emailId;
            surveyUser.SurveyUserGuid   = Guid.NewGuid().ToString();
            surveyUser.InsertedDatetime = DateTime.UtcNow;

            _dBContext.SurveyUser.Add(surveyUser);
            _dBContext.SaveChanges();
            return(Ok(surveyUser));
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: ferdmanp/SurveyLib
        private static void RunSurvey(SurveyCollection collection, int surveyId, SurveyUser user)
        {
            SurveyEngine engine = new SurveyEngine(collection);

            engine.StartSurvey(surveyId, user);
            Question currentQuestion = engine.CurrentQuestion;

            do
            {
                Console.WriteLine(currentQuestion.Title);
                foreach (var answer in currentQuestion.Answers)
                {
                    Console.WriteLine($"___{answer.Id}) {answer.Title}");
                }

                Console.WriteLine($"Enter your selection");
                string[]      result    = Console.ReadLine().Split(',');
                List <Answer> selection = new List <Answer>();
                for (int i = 0; i < result.Length; i++)
                {
                    int id = Int32.Parse(result[i]);
                    if (currentQuestion.Answers.Max(x => x.Id) >= id)
                    {
                        selection.Add(currentQuestion.Answers[id]);
                    }
                }

                engine.Answer(selection);

                currentQuestion = engine.NextQuestion();
            } while (currentQuestion != null);

            Console.WriteLine($"Your score is {engine.Result.Score} from {engine.Result.MaxScore}");
        }
コード例 #6
0
        public IHttpActionResult PutSurveyUser(string id, SurveyUser surveyUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != surveyUser.SurveyUserId)
            {
                return(BadRequest());
            }

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

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SurveyUserExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #7
0
        public async Task <IActionResult> PostSurveyUser([FromBody] SurveyUser surveyUser)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (FilledSurvey(surveyUser))
            {
                _context.SurveyUser.Add(surveyUser);

                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateException)
                {
                    if (SurveyUserExists(surveyUser.SurveyId))
                    {
                        return(new StatusCodeResult(StatusCodes.Status409Conflict));
                    }
                    else
                    {
                        throw;
                    }
                }
            }
            else
            {
                return(new StatusCodeResult(StatusCodes.Status400BadRequest));
            }


            return(CreatedAtAction("GetSurveyUser", new { id = surveyUser.SurveyId }, surveyUser));
        }
コード例 #8
0
        public async Task <IActionResult> Register(RegistrationViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new SurveyUser()
                {
                    UserName  = model.Email,
                    LastName  = model.LastName,
                    FirstName = model.FirstName,
                    Email     = model.Email
                };
                var result = await _userManager.CreateAsync(user, model.Password);


                if (result.Succeeded)
                {
                    if (!_roleManager.RoleExistsAsync("NormalUser").Result)
                    {
                        IdentityRole role = new IdentityRole();
                        role.Name = "NormalUser";
//                        role.Description = "Perform normal operations.";
                        IdentityResult roleResult = _roleManager.
                                                    CreateAsync(role).Result;
                        if (!roleResult.Succeeded)
                        {
                            ModelState.AddModelError("",
                                                     "Error while creating role!");
                            return(View());
                        }
                    }
                    if (!_roleManager.RoleExistsAsync("SuperUser").Result)
                    {
                        IdentityRole role = new IdentityRole();
                        role.Name = "SuperUser";
                        //                        role.Description = "Perform normal operations.";
                        IdentityResult roleResult = _roleManager.
                                                    CreateAsync(role).Result;
                        if (!roleResult.Succeeded)
                        {
                            ModelState.AddModelError("",
                                                     "Error while creating role!");
                            return(View());
                        }
                    }

                    _userManager.AddToRoleAsync(user,
                                                "SuperUser").Wait();


                    await _signInManager.SignInAsync(user, isPersistent : false);

                    _logger.LogInformation(3, "User created a new account with password.");
                    return(RedirectToAction(nameof(HomeController.Index), "Home"));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
コード例 #9
0
 CreateSurveyUser(Survey survey, Shortcode shortcode, ClaimsPrincipal currentUser)
 {
     var user = new UserViewModel {
         UserName = Guid.NewGuid().ToString("D")
     };
     SurveyUser appUser = Mapper.Map <SurveyUser> (user);
     var        result  = await _accountManager.CreateSurveyUserAsync(appUser, shortcode, null,
                                                                      new (string claimName, string claimValue) [] {
コード例 #10
0
 public SurveyUserDTO(SurveyUser user)
 {
     Id        = user.Id;
     FirstName = user.FirstName;
     LastName  = user.LastName;
     DoB       = user.DoB;
     Gender    = user.Gender;
     Country   = user.Country;
 }
コード例 #11
0
ファイル: Program.cs プロジェクト: ferdmanp/SurveyLib
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            SurveyUser user = new SurveyUser("admin", "0000", UserRole.User | UserRole.Admin);

            SurveyCollection collection = new SurveyCollection(
                user
                );

            var survey   = (Survey)collection.AddChild("Survey 1");
            var question = (Question)survey.AddChild("Question 1");

            question.AddChild("Asnwer 1");
            question.AddChild("Answer 2");
            ((Answer)question.AddChild("Answer 3")).IsCorrect = true;
            question = (Question)survey.AddChild("Question 2");
            question.AddChild("Answer 21");
            question.AddChild("Answer 22");
            ((Answer)question.AddChild("Answer 23")).IsCorrect = true;



            Random rndCorrect = new Random();
            Random rndScrore  = new Random();

            var survey2 = (Survey)collection.AddChild("Survey2");

            for (int i = 1; i <= 10; i++)
            {
                string title = $"Question 2.{i}";
                survey2.Questions.Add(i, title);
                for (int j = 1; j <= 5; j++)
                {
                    survey2.Questions[i].Answers.Add(j, $"Answer 2.{i}.{j}");
                }

                int randNum = rndCorrect.Next(1, 5);
                int range   = 10;
                survey2.Questions[i].Answers[randNum].IsCorrect = true;

                survey2.Questions[i].Answers[randNum].AnswerScore = rndScrore.NextDouble() * range;
            }


            foreach (Survey item in collection.Surveys)
            {
                item.PrintSurveyData(Console.WriteLine);
            }

            RunSurvey(collection, survey2.Id, user);


            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
コード例 #12
0
        public IHttpActionResult GetSurveyUser(string id)
        {
            SurveyUser surveyUser = db.SurveyUsers.Find(id);

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

            return(Ok(surveyUser));
        }
コード例 #13
0
 private void updateUser(SurveyUser user)
 {
     try
     {
         db.Entry(user).State = System.Data.Entity.EntityState.Modified;
         db.SaveChanges();
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #14
0
        public IHttpActionResult DeleteSurveyUser(string id)
        {
            SurveyUser surveyUser = db.SurveyUsers.Find(id);

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

            db.SurveyUsers.Remove(surveyUser);
            db.SaveChanges();

            return(Ok(surveyUser));
        }
コード例 #15
0
        public async Task <SaveSurveyUserResponse> SaveAsync(SurveyUser surveyUser)
        {
            try
            {
                await _surveyUserRepository.AddAsync(surveyUser);

                await _unitOfWork.CompleteAsync();

                return(new SaveSurveyUserResponse(surveyUser));
            }
            catch (Exception e)
            {
                return(new SaveSurveyUserResponse($"Произошла ошибка: {e.Message}"));
            }
        }
コード例 #16
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity <SurveyUser>(SurveyUser =>
            {
                SurveyUser.Property(s => s.FirstName).IsRequired();
                SurveyUser.Property(s => s.FirstName).HasMaxLength(600);
                SurveyUser.Property(s => s.Id).IsRequired();
                SurveyUser.HasKey(s => s.Id);
                SurveyUser.Property(s => s.LastName).IsRequired();
                SurveyUser.Property(s => s.LastName).HasMaxLength(600);
                SurveyUser.Property(s => s.Country).IsRequired();
                SurveyUser.Property(s => s.Country).HasMaxLength(600);
            });

            modelBuilder.Entity <Answers>(Answers =>
            {
                Answers.Property(a => a.Id).IsRequired();
                Answers.HasKey(a => a.Id);
                Answers.Property(a => a.UserId).IsRequired();
                Answers.HasKey(a => a.UserId);
                Answers.Property(a => a.OptionId).IsRequired();
                Answers.HasKey(a => a.OptionId);
                Answers.HasOne(a => a.User).WithMany().HasForeignKey(a => a.UserId);
                Answers.HasOne(a => a.Option).WithMany().HasForeignKey(a => a.OptionId);
            });

            modelBuilder.Entity <Option>(Option =>
            {
                Option.Property(s => s.Id).IsRequired();
                Option.HasKey(o => o.Id);
                Option.Property(o => o.Text).IsRequired();
                Option.Property(o => o.Text).HasMaxLength(600);
                Option.Property(s => s.NumOrder).IsRequired();
                Option.Property(s => s.QuestionId);
                Option.HasOne(s => s.Question).WithMany(s => s.Options).HasForeignKey(s => s.QuestionId);
            });

            modelBuilder.Entity <Question>(Question =>
            {
                Question.Property(s => s.Id).IsRequired();
                Question.HasKey(o => o.Id);
                Question.Property(o => o.Text).IsRequired();
                Question.Property(o => o.Text).HasMaxLength(600);
                Question.Property(o => o.Description).IsRequired();
                Question.Property(o => o.Text).HasMaxLength(600);
                Question.HasMany(o => o.Options).WithOne(o => o.Question).HasForeignKey(o => o.QuestionId);
            });
        }
コード例 #17
0
        public async Task <bool> CreateSurveyUser(SurveyUserDTO user)
        {
            var surveyUser = new SurveyUser
            {
                FirstName = user.FirstName,
                LastName  = user.LastName,
                DoB       = user.DoB,
                Gender    = user.Gender,
                Country   = user.Country
            };

            _context.SurveyUsers.Add(surveyUser);
            await _context.SaveChangesAsync();

            return(true);
        }
コード例 #18
0
 private void HandleIteration(SurveyUser user)
 {
     if (user.CurrentIteration < 3)
     {
         SendMessage(user.SurveyUserId, "Please indicate your symptom (1)Headache, (2)Dizziness, (3)Nausea, (4)Fatigue, (5)Sadness, (0)None");
         user.CurrentIteration++;
         user.CurrentQuestion = 1;
         updateUser(user);
     }
     else if (user.CurrentIteration == 3)
     {
         SendMessage(user.SurveyUserId, "Thank you and see you soon");
         user.isCompletedSurvey = true;
         updateUser(user);
     }
 }
コード例 #19
0
        private void saveUserResponse(SurveyUser user, string response)
        {
            List <string> question1Responses = new List <string> {
                "0", "1", "2", "3", "4", "5"
            };
            List <string> question2Responses = new List <string> {
                "0", "1", "2", "3", "4"
            };

            if ((user.CurrentQuestion == 1 && question1Responses.Contains(response)) || (user.CurrentQuestion == 2 && question2Responses.Contains(response)))
            {
                db.SurveyResponses.Add(new SurveyResponse {
                    SurveyResponseId = Guid.NewGuid().ToString(), SurveyUserId = user.SurveyUserId, SurveyQuestionId = user.CurrentQuestion, SurveyIteration = user.CurrentIteration, ResponseText = response
                });
            }
        }
コード例 #20
0
        private void HandleQuestion1(SurveyUser user, string response)
        {
            saveUserResponse(user, response);

            switch (response)
            {
            case "0":
                SendMessage(user.SurveyUserId, "Thank you and we will check with you later.");
                user.isCompletedSurvey = true;
                updateUser(user);
                break;

            case "1":
                SendMessage(user.SurveyUserId, "On a scale from 0 (none) to 4 (severe), how would you rate your Headache in the last 24 hours?");
                user.CurrentQuestion = 2;
                updateUser(user);
                break;

            case "2":
                SendMessage(user.SurveyUserId, "On a scale from 0 (none) to 4 (severe), how would you rate your Dizziness in the last 24 hours?");
                user.CurrentQuestion = 2;
                updateUser(user);
                break;

            case "3":
                SendMessage(user.SurveyUserId, "On a scale from 0 (none) to 4 (severe), how would you rate your Nausea in the last 24 hours?");
                user.CurrentQuestion = 2;
                updateUser(user);
                break;

            case "4":
                SendMessage(user.SurveyUserId, "On a scale from 0 (none) to 4 (severe), how would you rate your Fatigue in the last 24 hours?");
                user.CurrentQuestion = 2;
                updateUser(user);
                break;

            case "5":
                SendMessage(user.SurveyUserId, "On a scale from 0 (none) to 4 (severe), how would you rate your Sadness in the last 24 hours?");
                user.CurrentQuestion = 2;
                updateUser(user);
                break;

            default:
                SendMessage(user.SurveyUserId, "Please enter a number from 0 to 5");
                break;
            }
        }
コード例 #21
0
        private void HandleQuestion2(SurveyUser user, string response)
        {
            if (isValidResponse(response))
            {
                saveUserResponse(user, response);

                var userResponse = db.SurveyResponses.Where(r => r.SurveyUserId.Equals(user.SurveyUserId) && r.SurveyQuestionId == 1 && r.SurveyIteration == user.CurrentIteration).FirstOrDefault();
                var symptom      = symtomsList[userResponse.ResponseText];

                switch (response)
                {
                case "0":
                    SendMessage(user.SurveyUserId, "You do not have a " + symptom);
                    HandleIteration(user);
                    break;

                case "1":
                case "2":
                    SendMessage(user.SurveyUserId, "You have a mild " + symptom);
                    HandleIteration(user);
                    break;

                case "3":
                    SendMessage(user.SurveyUserId, "You have a moderate " + symptom);
                    HandleIteration(user);
                    break;

                case "4":
                    SendMessage(user.SurveyUserId, "You have a severe " + symptom);
                    HandleIteration(user);
                    break;

                default:
                    SendMessage(user.SurveyUserId, "Please enter a number from 0 to 4");
                    break;
                }
            }
            else
            {
                SendMessage(user.SurveyUserId, "Please enter a number from 0 to 4");
            }
        }
コード例 #22
0
        public ActionResult Save(SurveyUser surveyUser, int id)
        {
            if (!ModelState.IsValid)
            {
                var viewModel = new AnswerSurveyFormViewModel()
                {
                    SurveyUser = surveyUser,
                };

                return(View("AnswerSurvey", viewModel));
            }

            surveyUser.SurveyID = id;
            _context.SurveyUsers.Add(surveyUser);


            _context.SaveChanges();

            return(RedirectToAction("Index", "SurveyUser"));
        }
コード例 #23
0
        public IActionResult UpdateFeedbackComment(int surveyId, SurveyFeedbackViewModel surveyFeedbackViewModel)
        {
            UserFeedbackResponse userFeedbackResponse = new UserFeedbackResponse();
            string userguid      = Request.Headers[Constants.UserToken];
            string decyrptstring = Security.Decrypt(userguid);

            if (string.IsNullOrEmpty(decyrptstring))
            {
                return(BadRequest(Messages.UnauthorizedUserError));
            }

            User user = _dBContext.User.Where(x => x.UserGuid == decyrptstring).FirstOrDefault();

            if (user == null)
            {
                return(BadRequest(Messages.UserNotFoundError));
            }

            Survey survey = _dBContext.Survey.Where(x => x.CreatedBy == user.Userid && x.Surveyid == surveyId).FirstOrDefault();

            if (survey == null)
            {
                return(BadRequest(Messages.SurveyNotFoundError));
            }

            SurveyUser surveyUser = _dBContext.SurveyUser.Where(x => x.SurveyId == surveyId && x.SurveyUserId == surveyFeedbackViewModel.FeedbackId).FirstOrDefault();

            if (surveyUser == null)
            {
                return(BadRequest(Messages.FeedbackNotFound));
            }

            surveyUser.ReviewComment   = surveyFeedbackViewModel.Comment;
            surveyUser.ReviewCompleted = Convert.ToBoolean(surveyFeedbackViewModel.reviewComplete) ? 1 : 0;
            surveyUser.ReviewDatetime  = DateTime.UtcNow;
            _dBContext.SurveyUser.Update(surveyUser);
            _dBContext.SaveChanges();
            return(Ok(surveyUser));
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity <SurveyUser>(SurveyUser =>
            {
                SurveyUser.Property(p => p.Id).IsRequired();
                SurveyUser.HasKey(p => p.Id);
                SurveyUser.Property(p => p.FirstName).IsRequired();
                SurveyUser.Property(p => p.LastName).IsRequired();
                SurveyUser.Property(p => p.Country).IsRequired();
                SurveyUser.HasMany(p => p.Gender);
                SurveyUser.HasMany(p => p.DoB);
            });

            modelBuilder.Entity <Answers>(Answers =>
            {
                Answers.Property(p => p.Id).IsRequired();
                Answers.HasKey(p => p.Id);
                Answers.Property(p => p.UserId).IsRequired();
                Answers.Property(p => p.OptionId).IsRequired();
                Answers.HasMany(p => p.Option);
                Answers.HasMany(p => p.User);
            });
        }
コード例 #25
0
        private void HandleRegisterUser(SurveyUser user, string response)
        {
            if (user.isCompletedSurvey)
            {
                return;
            }
            else
            {
                switch (user.CurrentQuestion)
                {
                case 1:
                    HandleQuestion1(user, response);
                    break;

                case 2:
                    HandleQuestion2(user, response);
                    break;

                default:
                    break;
                }
            }
        }
コード例 #26
0
        public IActionResult DisplaySurvey(SurveyUser NewUser, string name, string location, string language, string comments)
        {
            List <SurveyUser> users = new List <SurveyUser>();

            if (ModelState.IsValid)
            {
                // users.Add(new SurveyUser(){
                //     Name = "Jambo",
                //     Location = "Seattle",
                //     Language = "ReactJS",
                //     Comments = "This is my comment",
                // });
                // SurveyUser newuser = new SurveyUser() {
                //     Name = name,
                //     Location = location,
                //     Language = language,
                //     Comments = comments,
                // };
                // ViewBag.displayname = name;
                // ViewBag.displaylocation = location;
                // ViewBag.displaylanguage = language;
                // ViewBag.displaycomments = comments;
                users.Add(new SurveyUser()
                {
                    Name     = name,
                    Location = location,
                    Language = language,
                    Comments = comments,
                });
                return(Redirect("DisplaySurvey"));
            }
            else
            {
                return(View("RequestSurvey"));
            }
        }
コード例 #27
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="user"></param>
 /// <param name="shortcodeRef"></param>
 /// <param name="shortcode"></param>
 /// <param name="claimName"></param>
 /// <param name="claimValue"></param>
 /// <returns></returns>
 public async Task <Tuple <bool, string[], SurveyUser> > CreateSurveyUserAsync(SurveyUser user,
                                                                               Shortcode shortcodeRef,
                                                                               string shortcodes, (string claimName, string claimValue)[] claims)
コード例 #28
0
 public virtual SurveyUser Put(SurveyUser surveyUser)
 {
     _surveyUserCommands.ActiveUser = Models.ApiContext.ActiveUser;
     return(_surveyUserCommands.Put(surveyUser));
 }
コード例 #29
0
 public async Task AddAsync(SurveyUser surveyUser)
 {
     await _context.SurveyUsers.AddAsync(surveyUser);
 }
コード例 #30
0
        public IActionResult GetSurveyUserFeedback(string surveyUserGuid)
        {
            SurveyViewModel surview       = new SurveyViewModel();
            string          userguid      = Request.Headers[Constants.UserToken];
            string          decyrptstring = Security.Decrypt(userguid);

            if (string.IsNullOrEmpty(decyrptstring))
            {
                return(BadRequest(Messages.UnauthorizedUserError));
            }

            User user = _dBContext.User.Where(x => x.UserGuid == decyrptstring).FirstOrDefault();

            if (user == null)
            {
                return(BadRequest(Messages.UserNotFoundError));
            }

            SurveyUser surveyuser = _dBContext.SurveyUser.Where(x => x.SurveyUserGuid == surveyUserGuid).FirstOrDefault();

            if (surveyuser == null)
            {
                return(BadRequest(Messages.SurveyUserNotFoundError));
            }

            Survey survey = _dBContext.Survey.Where(x => x.CreatedBy == user.Userid && x.Surveyid == surveyuser.SurveyId).FirstOrDefault();

            if (survey == null)
            {
                return(BadRequest(Messages.SurveyNotFoundError));
            }

            surview = _mapper.Map <SurveyViewModel>(survey);

            List <SurveyQuestions>          surveyQuestions = _dBContext.SurveyQuestions.Where(x => x.StatusId != (int)EnumStatus.Deleted && x.SurveyId == survey.Surveyid).ToList();
            List <QuestionType>             questiontypes   = _dBContext.QuestionType.ToList();
            List <SurveyQuestionsViewModel> viewquestions   = new List <SurveyQuestionsViewModel>();

            foreach (var item in surveyQuestions)
            {
                SurveyQuestionsViewModel         viewquestion = _mapper.Map <SurveyQuestionsViewModel>(item);
                List <SurveyUserQuestionOptions> surveyuserquestionoptions = new List <SurveyUserQuestionOptions>();
                List <string> selectedoptions        = new List <string>();
                string        optiontypevalue        = null;
                List <SurveyQuestionOptions> options = new List <SurveyQuestionOptions>();
                options = _dBContext.SurveyQuestionOptions.Where(x => x.SurveyQuestionId == item.SurveyQuestionId).OrderBy(x => x.OptionKey).ToList();
                surveyuserquestionoptions = _dBContext.SurveyUserQuestionOptions.Where(x => x.SurveyQuestionId == item.SurveyQuestionId && x.SurveyUserId == surveyuser.SurveyUserId).ToList();
                if (questiontypes != null)
                {
                    optiontypevalue = questiontypes.FirstOrDefault(x => x.TypeId == item.TypeId).TypeValue;
                }
                if (surveyuserquestionoptions != null)
                {
                    foreach (var itemq in surveyuserquestionoptions)
                    {
                        string option = null;
                        option = itemq.SurveyQuestionOptionId;
                        selectedoptions.Add(option);
                    }
                }
                Dictionary <string, object> dict = new Dictionary <string, object>();
                foreach (var opt in options)
                {
                    dict.Add(opt.OptionKey, opt.OptionValue);
                }
                viewquestion.Options        = dict;
                viewquestion.ObjectOptions  = options;
                viewquestion.questiontype   = optiontypevalue;
                viewquestion.selectedValues = selectedoptions;
                viewquestions.Add(viewquestion);
            }
            surview.SurveyQuestions = viewquestions;
            return(Ok(surview));
        }