public void EditFiller(FillerFormDTO fillerFormDTO) { fillerFormDTO.QuestionAnswerMappings.ForEach(x => x.EntityStateDTO = EntityStateDTO.Modified); _unitOfWork.BeginTransaction(); try { // var questionAnswerMapping = _questionAnswerMapRepo.Find(1); //this helps to rehidtrate the context with acpQAMap var acpQAnsMap = new QuestionAnswerMapping(); acpQAnsMap.Id = 1; //existing id acpQAnsMap.Client = "Newclient7"; acpQAnsMap.EntityState = EntityState.Modified; acpQAnsMap.FK_FillerFormId = questionAnswerMapping.FK_FillerFormId; _questionAnswerMapRepo.Update(acpQAnsMap); // var answerE = _acpAnswerRepo.Find(1); //this helps to rehidtrate the context with acpAnswer var questionListItemE = _acpQuesListItemRepo.Find(5); //the eixting we want to update - first hidrate it into context //var questionLstItm = new AcpQuestionListItem() //{ // Id = 5, // EntityState = EntityState.Unchanged, //}; //_acpQuesListItemRepo.Attach(questionListItemE); var answer = new AcpAnswer { Id = 1, EntityState = EntityState.Modified, AnswerText = "answer8", AcpQuestionListItem = questionListItemE }; _acpAnswerRepo.Update(answer); _unitOfWork.Save(); _unitOfWork.Commit(); } catch (Exception) { _unitOfWork.Rollback(); } }
/// <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); }