public bool SaveSurvey(SurveyView newSurvey) { bool wasSuccessful = true; using (SqlConnection conn = new SqlConnection(_connectionString)) { conn.Open(); string sqlSaveSurvey = "INSERT INTO survey_result (parkCode, emailAddress, state, activityLevel) VALUES (@ParkCode, @Email, @State, @ActivityLevel)"; SqlCommand cmd = new SqlCommand(); cmd.CommandText = sqlSaveSurvey; cmd.Connection = conn; cmd.Parameters.AddWithValue("@ActivityLevel", newSurvey.ActivityLevel); //cmd.Parameters.AddWithValue("@SurveyID", newSurvey.SurveyID); cmd.Parameters.AddWithValue("@State", newSurvey.State); cmd.Parameters.AddWithValue("@Email", newSurvey.Email); cmd.Parameters.AddWithValue("@ParkCode", newSurvey.ParkCode); int rowsAffected = cmd.ExecuteNonQuery(); if (rowsAffected == 0) { wasSuccessful = false; throw new Exception("Error: Review could not be made."); } } return(wasSuccessful); }
/// <summary> /// Removes a page from a survey /// </summary> /// <param name="view"></param> /// <param name="pageId"></param> public void RemoveSurveyPage(SurveyView view, int pageId) { List <QuestionPartView> pages = view.QuestionPartViews as List <QuestionPartView>; QuestionPartView toDelete = null; int pageIndex = Int32.MaxValue; for (int i = 0; i < pages.Count; i++) { if (pages[i].Order > pageIndex) { pages[i].Order--; } else if (pages[i].Id == pageId) { toDelete = pages[i]; pageIndex = toDelete.Order; } } //remove children question part views (to trigger question part deletes) var pageData = this._unitOfWork.QuestionPartViews.GetQuestionPartViewWithStructure(toDelete.Id); var childIds = pageData.QuestionPartViewChildren.Select(q => q.Id).ToList(); childIds.ForEach(id => this.RemoveQuestionPartView(pageData, id, false)); view.QuestionPartViews.Remove(toDelete); if (toDelete.CATIDependent != null) { var catiView = this._unitOfWork.SurveyViews.GetSurveyViewWithPagesStructure(view.SurveyId, "CATI"); this.RemoveSurveyPage(catiView, toDelete.CATIDependent.Id); } }
public ActionResult Survey() { SurveyView survey = new SurveyView(); survey.Parks = _dal.GetAllParks(); return(View("Surveys", survey)); }
public async Task <IActionResult> GenerateCATIView(int surveyId, string language) { var supportedLanguages = this._localizationOptions.Value.SupportedCultures.Select(c => c.Name); if (supportedLanguages.Contains(language)) { var survey = await this._unitOfWork.Surveys.GetSurveyLabelsAndPartsAsync(surveyId); if (survey.Owner == this.User.Identity.Name || await HasModifySurveyPermissions(surveyId)) { // get current standard view structure to duplicate SurveyView standardSurveyStructure = survey.SurveyViews.Where(v => v.ViewName == "Standard").SingleOrDefault(); //this._unitOfWork.SurveyViews.GetSurveyViewQuestionStructure(surveyId, "Standard"); // add CATI or get existing view SurveyView catiView = this._surveyBuilderService.AddSurveyView(survey, "CATI"); // duplicate structure and create labels for language this._surveyBuilderService.DuplicateSurveyViewStructure(standardSurveyStructure, catiView, language); // save to database await this._unitOfWork.SaveChangesAsync(); return(Ok(standardSurveyStructure.ToLocalizedModel <SBSurveyViewViewModel> (language))); } else { return(BadRequest("Insufficient privileges.")); } } else { return(BadRequest("Incorrect language.")); } }
/// <summary> /// /// </summary> /// <param name="view"></param> /// <param name="part"></param> /// <param name="definition"></param> /// <param name="position"></param> public QuestionPartView AddQuestion(SurveyView view, QuestionTypeDefinition definition, int position = -1) { QuestionPartView qpv = new QuestionPartView(); qpv.QuestionPart = new QuestionPart() { QuestionType = definition.TypeName }; if (position < 0) { view.QuestionPartViews.Add(qpv); } else { ((List <QuestionPartView>)view.QuestionPartViews).Insert(position, qpv); } //add more question part views if (definition.QuestionPartSlots.Count > 0) { foreach (var slot in definition.QuestionPartSlots) { var questionSlot = new QuestionPartView(); questionSlot.ParentView = qpv; questionSlot.QuestionPart = new QuestionPart() { QuestionType = definition.TypeName }; qpv.QuestionPartViewChildren.Add(questionSlot); } } return(qpv); }
public ActionResult Survey(SurveyView survey) { //Survey result = new Survey(); //result.ActivityLevel = survey.ActivityLevel; //result.EmailAddress = survey.EmailAddress; //result.State = survey.State; //result.ParkCode = Park; bool wasSuccesful = false; ActionResult redirect; if (!ModelState.IsValid) { survey.Parks = _dal.GetAllParks(); redirect = View("Surveys", survey); } else { _dal.SaveSurvey(survey); var favorites = _dal.GetFavorites(); redirect = View("Favorites", favorites); } //if (wasSuccesful) //{ // var favorites = _dal.GetFavorites(); // redirect = View("Favorites", favorites); //} //else //{ // redirect = View("Surveys", survey); //} return(redirect); }
public void ReOrderPages(SurveyView view, List <QuestionPartView> newOrder) { Dictionary <int, int> newOrderDict = newOrder.ToDictionary(r => r.Id, r => r.Order); foreach (var qpartView in view.QuestionPartViews) { qpartView.Order = newOrderDict[qpartView.Id]; } }
public ActionResult Next(SurveyView model) { if (!ModelState.IsValid) { return(View("Survey", model)); } foreach (var userQuestionView in model.Questions) { UserQuestion userQuestion = new UserQuestion { Answer = userQuestionView.Answer, QuestionId = userQuestionView.QuestionId, UserId = model.UserId }; _database.Add(userQuestion); } if (!HasOpenQuestions(model.UserId, model.CategoryId)) { return(RedirectToAction("SurveyCompleted", new { categoryId = model.CategoryId })); } var counter = _database.UserQuestions .Where(uq => uq.Question.CategoryId == model.CategoryId && uq.UserId == model.UserId) .Count(); var remainingQuestions = _database.Questions .Where(nq => nq.Category.Id == model.CategoryId && !_database.UserQuestions .Where(uq => uq.UserId == model.UserId) .Select(q => q.QuestionId) .Contains(nq.Id)) .Take(numberOfQuestions) .Select(q => new UserQuestionView { QuestionId = q.Id, QuestionDescription = q.Description, Counter = ++counter }) .ToList(); var survey = new SurveyView { CategoryName = model.CategoryName, CategoryId = model.CategoryId, Questions = remainingQuestions, UserId = model.UserId, }; ModelState.Clear(); return(View("Survey", survey)); }
private Survey SurveyViewToSurvey(SurveyView view, Survey oldSurvey) { oldSurvey.Title = view.Title; oldSurvey.Description = view.Description; oldSurvey.Ending = view.Ending; oldSurvey.ExpirationDate = view.ExpirationDate; oldSurvey.Status = view.Status; oldSurvey.Pages = view.Pages; return(oldSurvey); }
public ActionResult Show(int Id) { var geosurvey = Database.Session.Load <GeoSurvey>(Id); var surveyProfile = Database.Session.Query <SurveyProfile>().Where(x => x.GeoSurvey.Id == Id).ToList <SurveyProfile>(); var model = new SurveyView(); //model.SurveyId = data.surveyId; model.Client.Name = geosurvey.Client.Name; model.Client.Address = geosurvey.Client.Address; model.Client.Region = geosurvey.Client.Region.Name; model.Client.Phone = geosurvey.Client.Phone; model.Client.Email = geosurvey.Client.Email; model.Region = geosurvey.Region.Name; model.District = geosurvey.District.Name; model.Village = geosurvey.Village; model.SurveyorType = geosurvey.SurveyType; model.Cost = geosurvey.Cost; model.SurveyorName = geosurvey.Staff.Name; model.StartDate = geosurvey.StartDate; model.EndDate = geosurvey.EndDate; model.SiteRecommendation = geosurvey.SiteRecommendation; model.ProfileEditor1.Id = surveyProfile[0].Id; model.ProfileEditor1.VESPoints = surveyProfile[0].VesPoint.ToString(); model.ProfileEditor1.Northing = surveyProfile[0].Northing; model.ProfileEditor1.Easting = surveyProfile[0].Easting; model.ProfileEditor1.Elevation = surveyProfile[0].Elevation; model.ProfileEditor1.SurveyMethod = surveyProfile[0].SurveyMethod; model.ProfileEditor1.Recommend = surveyProfile[0].Recommend; model.ProfileEditor2.Id = surveyProfile[1].Id; model.ProfileEditor2.VESPoints = surveyProfile[1].VesPoint.ToString(); model.ProfileEditor2.Northing = surveyProfile[1].Northing; model.ProfileEditor2.Easting = surveyProfile[1].Easting; model.ProfileEditor2.Elevation = surveyProfile[1].Elevation; model.ProfileEditor2.SurveyMethod = surveyProfile[1].SurveyMethod; model.ProfileEditor2.Recommend = surveyProfile[1].Recommend; model.ProfileEditor3.Id = surveyProfile[2].Id; model.ProfileEditor3.VESPoints = surveyProfile[2].VesPoint.ToString(); model.ProfileEditor3.Northing = surveyProfile[2].Northing; model.ProfileEditor3.Easting = surveyProfile[2].Easting; model.ProfileEditor3.Elevation = surveyProfile[2].Elevation; model.ProfileEditor3.SurveyMethod = surveyProfile[2].SurveyMethod; model.ProfileEditor3.Recommend = surveyProfile[2].Recommend; return(View(model)); }
public void EditSurvey(SurveyView view, int id) { var oldSurvey = _surveys.FindOne(variable => variable.SurveyId == id); if (oldSurvey == null) { return; } _surveys.Delete(s => s.SurveyId == id); var newSurvey = SurveyViewToSurvey(view, oldSurvey); _surveys.Insert(newSurvey); }
/// <summary> /// Creates and initializes a list of test survey objects with relevent test data created. /// </summary> /// <returns></returns> public static IList <ISurvey> GetTestSurveys() { IList <ISurvey> testSurveys = new List <ISurvey>(); var testSurvey1 = new Survey() { // Title = "Test Survey 1", Id = 1, Name = "Test Survey Name 1", CreatedDate = new System.DateTime() }; var testSurvey2 = new Survey() { // Title = "Test Survey 2", Id = 2, Name = "Test Survey Name 2", CreatedDate = new System.DateTime() }; var testSurvey3 = new Survey() { // Title = "Test Survey 3", Id = 3, Name = "Test Survey Name 3", CreatedDate = new System.DateTime() }; testSurveys.Add(testSurvey1); testSurveys.Add(testSurvey2); testSurveys.Add(testSurvey3); //survey view for first survay var surveyView1 = new SurveyView(); surveyView1.Id = 1; testSurvey1.SurveyViews.Add(surveyView1); //2nd survey view for first sturvey var surveyView2 = new SurveyView(); surveyView2.Id = 2; testSurvey1.SurveyViews.Add(surveyView2); var surveyView3 = new SurveyView(); surveyView3.Id = 3; testSurvey2.SurveyViews.Add(surveyView3); //third survey has no survey views return(testSurveys); }
/// <summary> /// Adds a new view to the specified survey /// </summary> /// <param name="survey"></param> /// <param name="viewName"></param> public SurveyView AddSurveyView(Survey survey, string viewName) { // ensure view doesn't already exist with that name var surveyView = survey.SurveyViews.Where(s => s.ViewName == viewName).FirstOrDefault(); if (surveyView == null) { surveyView = new SurveyView() { ViewName = viewName }; survey.SurveyViews.Add(surveyView); } return(surveyView); }
public ActionResult Load(int categoryId) { var user = _database.Users .Find(u => u.UserName == loggedInUserName); var category = _database.Categories .Find(c => c.Id == categoryId); if (!HasOpenQuestions(user.Id, category.Id)) { return(RedirectToAction("SurveyCompleted", new { categoryId = category.Id })); } var answeredQuestions = _database.UserQuestions .Where(uq => uq.Question.Category.Id == categoryId && uq.UserId == user.Id); int counter = answeredQuestions.Count(); var survey = new SurveyView { CategoryId = category.Id, CategoryName = category.Name, UserId = user.Id }; survey.Questions = _database.Questions .Where(nq => nq.Category.Id == categoryId && !answeredQuestions .Select(q => q.Question.Id) .Contains(nq.Id)) .Take(numberOfQuestions) .Select(q => new UserQuestionView { Counter = ++counter, QuestionDescription = q.Description, QuestionId = q.Id, }) .ToList(); ModelState.Clear(); return(View("Survey", survey)); }
private SurveyView ToSurveyView(Survey survey) { var view = new SurveyView() { SurveyId = survey.SurveyId, Title = survey.Title, Description = survey.Description, Ending = survey.Ending, CreateDate = survey.CreateDate, ExpirationDate = survey.ExpirationDate, Status = survey.Status, PersonalData = survey.PersonalData, Pages = survey.Pages }; return(view); }
public async Task <IActionResult> CreateSurvey([FromBody] SurveyView surveyView) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var survey = mapper.Map <SurveyView, Survey>(surveyView); var userId = HttpContext.User.Claims.First().Value; survey.UserId = new Guid(userId); await context.Surveys.AddAsync(survey); await context.SaveChangesAsync(); var result = mapper.Map <Survey, SurveyView>(survey); return(Ok(result)); }
public ActionResult Create(SurveyView surveyView) { if (Request.Form["SurveyID"] != "0" && Request.Form["SurveyID"] != null) { surveyView.survey.surveyID = Convert.ToInt32(Request.Form["SurveyID"]); surveyView.survey.dateFrom = DateTime.ParseExact(Request.Form["CtrlDateFrom"], "dd/MM/yyyy", null); surveyView.survey.dateTo = DateTime.ParseExact(Request.Form["CtrlDateTo"], "dd/MM/yyyy", null); db.Entry(surveyView.survey).State = EntityState.Modified; db.SaveChanges(); surveyView.surveyDetail.surveyID = surveyView.survey.surveyID; surveyView.surveyDetail.name = Request.Form["surveyDetail_name"]; surveyView.surveyDetail.type = Request.Form["typeDetail"]; surveyView.surveyDetail.option1 = Request.Form["option1"]; surveyView.surveyDetail.option2 = Request.Form["option2"]; surveyView.surveyDetail.option3 = Request.Form["option3"]; surveyView.surveyDetail.option4 = Request.Form["option4"]; surveyView.surveyDetail.option5 = Request.Form["option5"]; surveyView.surveyDetail.option6 = Request.Form["option6"]; surveyView.surveyDetail.active = true; if (Request.Form["HDSurveyDetailID"] == "0" || Request.Form["HDSurveyDetailID"] == "" || Request.Form["HDSurveyDetailID"] == null) { db.SurveyDetail.Add(surveyView.surveyDetail); db.SaveChanges(); } else { surveyView.surveyDetail.surveyDetailID = Convert.ToInt32(Request.Form["HDSurveyDetailID"]); db.Entry(surveyView.surveyDetail).State = EntityState.Modified; db.SaveChanges(); } } else { surveyView.survey.dateFrom = DateTime.ParseExact(Request.Form["CtrlDateFrom"], "dd/MM/yyyy", null); surveyView.survey.dateTo = DateTime.ParseExact(Request.Form["CtrlDateTo"], "dd/MM/yyyy", null); db.Survey.Add(surveyView.survey); db.SaveChanges(); } surveyView.surveyDetailList = db.SurveyDetail.Where(x => x.surveyID == surveyView.survey.surveyID).ToList(); return(View(surveyView)); }
public ActionResult Survey(int categoryId) { int questionCounter = 0; var category = _database.Categories .Find(c => c.Id == categoryId); var user = _database.Users .Find(u => u.UserName == loggedInUserName); if (!HasOpenQuestions(user.Id, category.Id)) { return(RedirectToAction("SurveyCompleted", new { categoryId = category.Id })); } if (category != null) { var questions = _database.Questions .Where(q => q.Category.Id == categoryId) .Take(numberOfQuestions) .Select(q => new UserQuestionView { QuestionDescription = q.Description, QuestionId = q.Id, Counter = ++questionCounter }) .ToList(); var survey = new SurveyView { CategoryName = category.Name, CategoryId = category.Id, Questions = questions, UserId = user.Id, }; return(View(survey)); } else { return(HttpNotFound("Unable to find a categroy with matching identifier.")); } }
public ActionResult Survey(SurveyView survey) { ActionResult redirect; if (!ModelState.IsValid) { survey.Parks = _dal.GetAllParks(); redirect = View("Surveys", survey); } else { _dal.SaveSurvey(survey); var favorites = _dal.GetFavorites(); redirect = RedirectToAction("Favorites", favorites); } return(redirect); }
public async Task <IActionResult> UpdateSurvey([FromBody] SurveyView surveyView) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var survey = await context.Surveys.Include(s => s.Groups).Include(s => s.Templates).SingleOrDefaultAsync(s => s.Id == new Guid(surveyView.Id)); if (survey == null) { return(NotFound()); } mapper.Map <SurveyView, Survey>(surveyView, survey); context.Surveys.Update(survey); await context.SaveChangesAsync(); var result = mapper.Map <Survey, SurveyView>(survey); return(Ok(result)); }
/// <summary> /// Adds a question part to the specified SurveyView - this creates a new QuestionPartView from the part /// </summary> /// <param name="view"></param> /// <param name="part"></param> /// <param name="position">0-index order, position of the qustion</param> /// <returns>A reference to the created QuestionPartView</returns> public QuestionPartView AddQuestionPart(SurveyView view, QuestionPart part, QuestionTypeDefinition definition, int position = -1) { QuestionPartView questionPartView = new QuestionPartView { QuestionPart = part }; if (position >= 0) { questionPartView.Order = position; (view.QuestionPartViews as List <QuestionPartView>)?.Insert(position, questionPartView); } else { (view.QuestionPartViews as List <QuestionPartView>)?.Add(questionPartView); questionPartView.Order = view.QuestionPartViews.Count - 1; } return(questionPartView); }
public ActionResult Create(int?id) { SurveyView objSurveyView = new SurveyView(); objSurveyView.survey = new Survey(); objSurveyView.surveyDetail = new SurveyDetail(); if (id != null) { objSurveyView.surveyDetail = db.SurveyDetail.FirstOrDefault(x => x.surveyDetailID == id); objSurveyView.survey = db.Survey.FirstOrDefault(x => x.surveyID == id); objSurveyView.surveyDetailList = db.SurveyDetail.Where(u => u.surveyID == id).ToList(); } else { objSurveyView.survey = new Survey(); objSurveyView.survey.active = true; objSurveyView.surveyDetail = new SurveyDetail(); objSurveyView.surveyDetailList = new List <SurveyDetail>(); } return(View(objSurveyView)); }
public bool DeleteCATITranslation(SurveyView surveyView, string language) { if (surveyView.WelcomePageLabels.Where(l => l.Language == language).Any()) { surveyView.WelcomePageLabels.RemoveWhere(l => l.Language == language); surveyView.TermsAndConditionsLabels.RemoveWhere(l => l.Language == language); surveyView.ThankYouPageLabels.RemoveWhere(l => l.Language == language); foreach (var page in surveyView.QuestionPartViews) { page.Labels.RemoveWhere(l => l.Language == language); foreach (var question in page.QuestionPartViewChildren) { question.Labels.RemoveWhere(l => l.Language == language); foreach (var subQuestion in question.QuestionPartViewChildren) { subQuestion.Labels.RemoveWhere(l => l.Language == language); } } } } return(surveyView.WelcomePageLabels.Any()); }
public async Task <IActionResult> DeleteCATIView(int surveyId, string language) { var survey = await this._unitOfWork.Surveys.GetSurveyLabelsAndPartsAsync(surveyId); if (survey.Owner == this.User.Identity.Name || await HasModifySurveyPermissions(surveyId)) { // get current standard view structure to duplicate SurveyView CATISurveyStructure = this._unitOfWork.SurveyViews.GetSurveyViewQuestionStructure(surveyId, "CATI"); // add CATI or get existing view bool keepView = this._surveyBuilderService.DeleteCATITranslation(CATISurveyStructure, language); if (!keepView) { this._unitOfWork.SurveyViews.Remove(CATISurveyStructure); } // save to database await this._unitOfWork.SaveChangesAsync(); return(Ok()); } else { return(BadRequest("Insufficient privileges.")); } }
public void DuplicateSurveyViewStructure(SurveyView sourceView, SurveyView targetView, string language) { bool structureExists = true; bool structureAndLanguageExists = false; //deal with base labels (welcome, t&c, thank you) if (targetView.WelcomePageLabels == null) { structureExists = false; targetView.WelcomePageLabels = new LabelCollection <WelcomePageLabel>(); targetView.TermsAndConditionsLabels = new LabelCollection <TermsAndConditionsPageLabel>(); targetView.ThankYouPageLabels = new LabelCollection <ThankYouPageLabel>(); } else if (targetView.WelcomePageLabels[language] != null) { structureAndLanguageExists = true; } if (!structureAndLanguageExists) { targetView.WelcomePageLabels[language] = new WelcomePageLabel { Value = null }; targetView.TermsAndConditionsLabels[language] = new TermsAndConditionsPageLabel { Value = null }; targetView.ThankYouPageLabels[language] = new ThankYouPageLabel { Value = null }; // if structure exists, just create new labels under the language if (structureExists) { foreach (var sourcePage in sourceView.QuestionPartViews) { var page = sourcePage.CATIDependent; page.Labels[language] = new QuestionPartViewLabel { Value = sourcePage.Labels[language].Value }; foreach (var question in page.QuestionPartViewChildren) { question.Labels[language] = new QuestionPartViewLabel { Value = null }; foreach (var subQuestion in question.QuestionPartViewChildren) { subQuestion.Labels[language] = new QuestionPartViewLabel { Value = null }; } } } } else { foreach (var page in sourceView.QuestionPartViews) { QuestionPartView targetPage = new QuestionPartView { Order = page.Order, Icon = page.Icon }; page.CATIDependent = targetPage; targetView.QuestionPartViews.Add(targetPage); targetPage.Labels[language] = new QuestionPartViewLabel { Value = page.Labels[language].Value }; foreach (var question in page.QuestionPartViewChildren) { QuestionPartView targetQuestion = new QuestionPartView { Order = question.Order, IsOptional = question.IsOptional, IsHousehold = question.IsHousehold, RepeatSource = question.RepeatSource, QuestionPart = question.QuestionPart }; question.CATIDependent = targetQuestion; targetPage.QuestionPartViewChildren.Add(targetQuestion); targetQuestion.Labels[language] = new QuestionPartViewLabel { Value = null }; foreach (var subQuestion in question.QuestionPartViewChildren) { QuestionPartView targetSubQuestion = new QuestionPartView { Order = subQuestion.Order, IsOptional = subQuestion.IsOptional, RepeatSource = subQuestion.RepeatSource, QuestionPart = subQuestion.QuestionPart }; subQuestion.CATIDependent = targetSubQuestion; targetQuestion.QuestionPartViewChildren.Add(targetSubQuestion); targetSubQuestion.Labels[language] = new QuestionPartViewLabel { Value = null }; } } } } } }
/// <summary> /// Cleans up conditionals, removing any that are invalid (source question now after original) /// </summary> /// <param name="modifiedViews"></param> public void ValidateConditionals(SurveyView structure, int questionPartViewMovedId) { List <int> questionPartIdsBefore = new List <int>(); List <int> questionPartIdsAfter = new List <int>(); int questionPartId = 0; bool foundQuestion = false; structure.QuestionPartViews.OrderBy(q => q.Order).ToList().ForEach(page => { page.QuestionPartViewChildren.OrderBy(q => q.Order).ToList().ForEach(firstLayerQuestion => { if (firstLayerQuestion.QuestionPart != null) { if (firstLayerQuestion.Id == questionPartViewMovedId) { foundQuestion = true; questionPartId = firstLayerQuestion.QuestionPart.Id; } else { if (!foundQuestion) { questionPartIdsBefore.Add(firstLayerQuestion.QuestionPart.Id); } else { questionPartIdsAfter.Add(firstLayerQuestion.QuestionPart.Id); } } } else { firstLayerQuestion.QuestionPartViewChildren.OrderBy(q => q.Order).ToList().ForEach(secondLayerQuestion => { if (secondLayerQuestion.Id == questionPartViewMovedId) { foundQuestion = true; questionPartId = secondLayerQuestion.QuestionPart.Id; } else { if (!foundQuestion) { questionPartIdsBefore.Add(secondLayerQuestion.QuestionPart.Id); } else { questionPartIdsAfter.Add(secondLayerQuestion.QuestionPart.Id); } } }); } }); }); // call repository functions to remove conditionals that don't belong for the specific question this._unitOfWork.QuestionConditionals.ValidateSourceConditionals(questionPartId, questionPartIdsAfter); this._unitOfWork.QuestionOptionConditionals.ValidateSourceConditionals(questionPartId, questionPartIdsAfter); this._unitOfWork.QuestionConditionals.ValidateTargetConditionals(questionPartId, questionPartIdsBefore); this._unitOfWork.QuestionOptionConditionals.ValidateTargetConditionals(questionPartId, questionPartIdsBefore); }
/// <summary> /// Adds a page to a survey /// </summary> /// <param name="view"></param> /// <param name="newPage"></param> public void AddSurveyPage(SurveyView view, QuestionPartView newPage) { view.QuestionPartViews.Add(newPage); newPage.Order = view.QuestionPartViews.Count - 1; }