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();
            }
        }
Esempio n. 2
0
        /// <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);
        }