public async Task <int> SubmitAnswersAsync(QuestionnaireSubmission model) { var entity = new QuestionnaireSubmit { Id = model.Id, UserId = model.UserId, IsCompleted = model.IsCompleted, LastUpdated = DateTime.Now, QuestionAnswers = model.QuestionAnswers.Select(x => new QuestionnaireQuestionAnswer { Id = x.Id, Text = x.Text, Answers = x.Answers }).ToList() }; return(await _repository.InsertQuestionnaireAsync(entity)); }
protected void Page_Load(object sender, EventArgs e) { Submissions = CacheHandler.GetSubmissions(Cache); if (CookieAuthentication.IsSet(Context.Request.Cookies)) { StudentID = CookieAuthentication.GetStudentID(Context.Request.Cookies); CurrentSubmission = Submissions.Get(StudentID); if (CurrentSubmission.SubmissionIPAddress == null) { Response.Redirect("./Questionnaire.aspx", false); Context.ApplicationInstance.CompleteRequest(); } else { ccQuestionnaire.AssociatedQuestionnaire = CurrentSubmission.Questionnaire; CookieAuthentication.ExpireAllCookies(Request.Cookies, Response.Cookies); } } }
protected async void Page_Load(object sender, EventArgs e) { Submissions = CacheHandler.GetSubmissions(Cache); if (CookieAuthentication.IsSet(Context.Request.Cookies)) { StudentID = CookieAuthentication.GetStudentID(Context.Request.Cookies); CurrentSubmission = Submissions.Get(StudentID); if (CurrentSubmission.SubmissionIPAddress != null) { Response.Redirect("./Result.aspx", false); Context.ApplicationInstance.CompleteRequest(); } else { cmdConfirm.ServerClick += new EventHandler(cmdConfirm_Click); if (!IsPostBack) { ccQuestionnaire.AssociatedQuestionnaire = CurrentSubmission.Questionnaire; } } } }
private async void cmdSubmit_Click(object sender, EventArgs e) { Student student; DateTime birthDate; BasicUserProperties properties = new BasicUserProperties(); properties.FirstName = txtFirstName.Value; properties.SecondName = txtSecondName.Value; if (!DateTime.TryParseExact(calBirthDate.Value, @"yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out birthDate)) { divErrorContainer.Controls.Add(new BootstrapAlert() { Text = "Il formato della data specificato non è supportato dall'applicazione. Rilevata modifica della struttura HTML e/o Javascript." , Title = "Errore dati." , ID = "loginAlert" }); Context.ApplicationInstance.CompleteRequest(); return; } else { properties.BirthDate = birthDate; } student = new Student(properties); if (await student.AuthenticateAsync() == AuthenticationType.Student) { //checking if authenticated user is involved in the current questionnaire session if ((from s in CacheHandler.GetInvolvedStudents(Cache) where s.ID.Equals(student.ID) select s).FirstOrDefault() != null /*true*/) { StudentSubmission = Submissions.Get(student.ID); if (StudentSubmission == null) { if (Submissions.Items.Where(x => x.AssignationIPAddress == Request.UserHostAddress).FirstOrDefault() == null) { divErrorContainer.Controls.Add(new BootstrapAlert() { Text = "ACCESSO NEGATO!", Title = "Errore dati.", ID = "loginAlert" }); /* * QuestionnaireSession questionnaireSession = CacheHandler.GetQuestionnaireSession(Cache); * QuestionnaireLib.Questionnaire assignedQuestionnaire = new QuestionnaireLib.Questionnaire(questionnaireSession.Questionnaire); * assignedQuestionnaire.Populate(); * foreach (Question q in assignedQuestionnaire.Questions) * { * q.Answers = Helpers.RimescolaCol(q.Answers); * } * StudentSubmission = new QuestionnaireSubmission(assignedQuestionnaire, student, Request.UserHostAddress, questionnaireSession); * Submissions.Items.Add(StudentSubmission); */ } else { //ANOMALY HERE //StudentSubmission.Anomalies.Add(new DifferentHostAnomaly(StudentSubmission.AssignationIPAddress, Request.UserHostAddress)); divErrorContainer.Controls.Add(new BootstrapAlert() { Text = "Tentativo di accesso ad un altro account dallo stesso host rilevato." , Title = "Accesso fallito." , ID = "loginAlert" }); return; } } //Preventing same user from logging from different machines if (StudentSubmission.AssignationIPAddress == Request.UserHostAddress) { FormsAuthentication.SetAuthCookie(student.ID.ToString(), false); if (Request.QueryString["ReturnUrl"] == null) { Response.Redirect("./Questionnaire.aspx", false); Context.ApplicationInstance.CompleteRequest(); } else { Response.Redirect(Request.QueryString["ReturnUrl"], false); Context.ApplicationInstance.CompleteRequest(); } } else { //ANOMALY HERE StudentSubmission.Anomalies.Add(new DifferentHostAnomaly(StudentSubmission.AssignationIPAddress, Request.UserHostAddress)); divErrorContainer.Controls.Add(new BootstrapAlert() { Text = "Tentativo di accesso da un altro host rilevato." , Title = "Accesso fallito." , ID = "loginAlert" }); } } else { divErrorContainer.Controls.Add(new BootstrapAlert() { Text = "Lo studente che possiede le credenziali specificate non partecipa a questa esaminazione." , Title = "Accesso fallito." , ID = "loginAlert" }); } } else { divErrorContainer.Controls.Add(new BootstrapAlert() { Text = "Assicurati di aver inserito correttamente i tuoi dati e riprova." , Title = "Accesso fallito." , ID = "loginAlert" }); } }
private void FileAddedHandler(object sender, FileSystemEventArgs e) { Submissions.Add(QuestionnaireSubmission.BinaryDeserialize(e.FullPath)); }
public async Task <ActionResult <int> > Post([FromBody] QuestionnaireSubmission request) => await _answersService.SubmitAnswersAsync(request);
/// <summary> /// 人员提交问卷数据 /// </summary> /// <param name="id"></param> /// <returns></returns> public bool SubmitQuestionnaire(QuestionnaireDTO dto) { using (var transaction = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted })) { try { using (var db = base.GDDSVSPDb) { Guid id = Guid.NewGuid(); DateTime date = DateTime.Now; int isDel = Convert.ToInt32(IsDel.未删除); Guid? employeeId = dto.EmployeeID; Guid questionnaireId = dto.QuestionnaireID; Guid departmentId = dto.DepartmentID; Guid functionalGroupId = dto.FunctionalGroupID; int isRelation = dto.IsRelation; QuestionnaireSubmission qs = new QuestionnaireSubmission(); qs.ID = id; qs.QuestionnaireID = questionnaireId; qs.EmployeeID = employeeId; qs.IsSubmit = 1; qs.CreateTime = date; qs.IsDel = isDel; db.QuestionnaireSubmission.Add(qs); db.SaveChanges(); if (isRelation == Convert.ToInt32(QuestionnaireIsRelation.关联)) { employeeId = null; } List <QuestionAnswerMapping> list = new List <QuestionAnswerMapping>(); List <QuestionDTO> questions = dto.Questions; for (int i = 0; i < questions.Count; i++) { QuestionAnswerMapping obj = new QuestionAnswerMapping(); obj.QuestionAnswerID = Guid.NewGuid(); obj.QuestionID = questions[i].QuestionID; obj.OptionID = questions[i].OptionID; obj.OptionReason = questions[i].OptionReason; obj.EmployeeID = employeeId; obj.QuestionnaireID = questionnaireId; obj.DepartmentID = departmentId; obj.FunctionalGroupID = functionalGroupId; obj.CreateTime = date; obj.IsDel = isDel; list.Add(obj); } db.QuestionAnswerMapping.AddRange(list); db.SaveChanges(); transaction.Complete(); } } catch (Exception ex) { throw ex; return(false); } } return(true); }