示例#1
0
        private InventoryFormData AddInventoryFormData(Form form)
        {
            var formData =
                new InventoryFormData()
            {
                Form     = form,
                ShipDate = new Question {
                    Caption = "Ship Date", DataType = QuestionDataType.Date, Form = form
                },
                BatchNumber = new Question {
                    Caption = "Batch Number", DataType = QuestionDataType.Integer, Form = form
                },
                QuantityShipped = new Question {
                    Caption = "Quantity Shipped", DataType = QuestionDataType.Number, Form = form
                },
                ReceiptDate = new Question {
                    Caption = "Receipt Date", DataType = QuestionDataType.Date, Form = form
                },
                MedicationUsage = new List <RepeatableInventoryData>()
            };

            InventoryFormDataRepository.Add(formData);
            QuestionRepository.Add(formData.ShipDate);
            QuestionRepository.Add(formData.BatchNumber);
            QuestionRepository.Add(formData.QuantityShipped);
            QuestionRepository.Add(formData.ReceiptDate);
            return(formData);
        }
示例#2
0
        private DemographicFormData AddDemographicFormData(Form form)
        {
            var formData = new DemographicFormData()
            {
                Form        = form,
                DateOfBirth = new Question {
                    Caption = "Date Of Birth", DataType = QuestionDataType.Date, Form = form
                },
                Other = new Question {
                    Caption = "Other", DataType = QuestionDataType.String, Form = form
                },
                Race = new Question {
                    Caption = "Race", DataType = QuestionDataType.Enum, Form = form
                },
                Sex = new Question {
                    Caption = "Sex", DataType = QuestionDataType.Enum, Form = form
                }
            };

            DemographicFormDataRepository.Add(formData);
            QuestionRepository.Add(formData.DateOfBirth);
            QuestionRepository.Add(formData.Other);
            QuestionRepository.Add(formData.Race);
            QuestionRepository.Add(formData.Sex);
            return(formData);
        }
        public void Add_Question_Without_Title_Error()
        {
            BitcoinShowDBContext context    = DbContextFactory.GetContext();
            QuestionRepository   repository = new QuestionRepository(context);

            Question option          = new Question();
            ArgumentNullException ex = Assert.Throws <ArgumentNullException>(() => repository.Add(option));

            Assert.NotNull(ex);
            Assert.Equal(nameof(option.Title), ex.ParamName);
        }
        public void Add_Question_Without_Answer_Error()
        {
            BitcoinShowDBContext context    = DbContextFactory.GetContext();
            QuestionRepository   repository = new QuestionRepository(context);

            Question question = new Question();

            question.Title = "How many times do you test your code?";

            ArgumentNullException ex = Assert.Throws <ArgumentNullException>(() => repository.Add(question));

            Assert.NotNull(ex);
            Assert.Equal(nameof(question.Answer), ex.ParamName);
        }
示例#5
0
        private AdverseEventFormData AddAdverseEventFormData(Form form)
        {
            var formData = new AdverseEventFormData()
            {
                Form = form,
                AdverseExperience =
                    new Question {
                    Caption = "Adverse Experience", DataType = QuestionDataType.String, Value = null, Form = form
                },
                OnsetDate =
                    new Question {
                    Caption = "Onset Date", DataType = QuestionDataType.Date, Value = null, Form = form
                },
                OnsetTime =
                    new Question {
                    Caption = "Onset Time", DataType = QuestionDataType.Time, Value = null, Form = form
                },
                EndDate =
                    new Question {
                    Caption = "End Date", DataType = QuestionDataType.Date, Value = null, Form = form
                },
                EndTime =
                    new Question {
                    Caption = "End Time", DataType = QuestionDataType.Time, Value = null, Form = form
                },
                Outcome =
                    new Question {
                    Caption = "Outcome", DataType = QuestionDataType.Enum, Value = null, Form = form
                },
                Intensity =
                    new Question {
                    Caption = "Intensity", DataType = QuestionDataType.Enum, Value = null, Form = form
                },
                RelationshipToInvestigationalDrug =
                    new Question {
                    Caption = "Relationship to Investigational Drug", DataType = QuestionDataType.Enum, Value = null, Form = form
                }
            };

            AdverseEventFormDataRepository.Add(formData);
            QuestionRepository.Add(formData.AdverseExperience);
            QuestionRepository.Add(formData.OnsetDate);
            QuestionRepository.Add(formData.OnsetTime);
            QuestionRepository.Add(formData.EndDate);
            QuestionRepository.Add(formData.EndTime);
            QuestionRepository.Add(formData.Outcome);
            QuestionRepository.Add(formData.Intensity);
            QuestionRepository.Add(formData.RelationshipToInvestigationalDrug);
            return(formData);
        }
示例#6
0
        private HappinessFormData AddHappinessFormData(Form form)
        {
            var formData = new HappinessFormData()
            {
                Form           = form,
                HappinessLevel = new Question {
                    Caption = "Happiness", DataType = QuestionDataType.Integer, Form = form
                }
            };

            HappinessFormDataRepository.Add(formData);
            QuestionRepository.Add(formData.HappinessLevel);
            return(formData);
        }
示例#7
0
        static void Main(string[] args)
        {
            ThemeRepository themeRep = new ThemeRepository();
            QuestionRepository questRep = new QuestionRepository();

            Question q = new Question()
            {
                Text = "question qqq",
                ThemeId=11,
            };
            questRep.Add(q);

            Console.ReadKey();
        }
示例#8
0
        public List <string> GetAnswer(string question)
        {
            QuestionRepository <Question> questionRepository = new QuestionRepository <Question>(db);


            DirectLineClient client       = new DirectLineClient(directLineSecret);
            Conversation     conversation = client.Conversations.StartConversation();

            Activity message = new Activity
            {
                From = new ChannelAccount(fromUser),
                Text = question,
                Type = ActivityTypes.Message
            };

            client.Conversations.PostActivity(conversation.ConversationId, message);

            var msg = client.Conversations.GetActivities(conversation.ConversationId);

            var msgT = from m in msg.Activities
                       where m.From.Id == botId
                       select m;

            var rep = msgT.Last().Text;

            string badrequest = "No QnA Maker answers were found. This example uses a QnA Maker Knowledge Base that focuses on smart light bulbs. \r\n                                To see QnA Maker in action, ask the bot questions like 'Why won't it turn on?' or 'I need help'.";

            if (rep == badrequest)
            {
                questionRepository.Add(converter.StringToQuestionType(question));
                db.SaveChanges();
                rep = "I'm sorry but i can't answer your question. But i'm working on it ! Try again later. If you want to send your question by mail to be reviewed type '' @mail : Your Question. ''";
            }

            if (question.StartsWith("@mail"))
            {
                //SendQuestion sendQuestion = new SendQuestion();
                //sendQuestion.PostRequest(question, "https://smtphakobot2.azurewebsites.net/mail/get");
                rep = "Your question has been sent by mail to our support and will be reviewed very soon !";
                var sendmail = new WebClient();
                var content  = sendmail.DownloadString("https://smtphakobot2.azurewebsites.net/mail/get?message=" + question);
            }

            char[] delimiterChars = { '$' };
            var    returnlist     = rep.Split(delimiterChars).ToList();


            return(returnlist);
        }
        public void InstantiateTheContext()
        {
            var dbCtxt = new InfoDigestContext("InfoDigestTests");

            try
            {
                QuestionRepository repo = new QuestionRepository(dbCtxt);
                repo.Add(new Question {QuestionText = "Yabba"});
                dbCtxt.SaveChanges();
            }
            catch (DbUpdateException e)
            {
                throw e;
            }
        }
示例#10
0
文件: Form1.cs 项目: zinaidamh/Quiz
        private void SaveImport(Dictionary <int, Question> data, string fileName)
        {
            var QuestionHelper = new QuestionRepository(liteDBPath);
            int maxNum         = data.Keys.Max();
            int minNum         = data.Keys.Min();

            string msg = "";

            // QuestionHelper.DeleteAll();
            foreach (KeyValuePair <int, Question> item in data)
            {
                int txtNum = item.Key;
                item.Value.AnswerHTML = FormatAnswer(item.Value.AnswerHTML);

                Question oldQuestion = QuestionHelper.GetOne(txtNum); //if number not exists - add new, else update
                Question newQuestion = null;
                if (oldQuestion == null)
                {
                    item.Value.QuestionId = Guid.NewGuid();
                    QuestionHelper.Add(item.Value);
                }
                else
                {
                    newQuestion              = oldQuestion;
                    newQuestion.AnswerText   = item.Value.AnswerText;
                    newQuestion.AnswerHTML   = item.Value.AnswerHTML;
                    newQuestion.QuestionText = item.Value.QuestionText;
                    newQuestion.Participants = item.Value.Participants;
                    newQuestion.Active       = item.Value.Active;
                    QuestionHelper.Update(newQuestion);
                }
            }


            this.txtFrom.Text = minNum.ToString();
            this.txtTo.Text   = maxNum.ToString();
            FilterGridView();
            //RefreshGridView(QuestionHelper.Get(0,0,chkActiveOnly.Checked));
            // Clear();
            if (msg != "")
            {
                MessageBox.Show(msg);
            }
            else
            {
                MessageBox.Show(fileName + " Loaded OK");
            }
        }
示例#11
0
文件: Form1.cs 项目: zinaidamh/Quiz
        public Question SaveRow(bool showMessage = false)
        {
            var QuestionHelper = new QuestionRepository(liteDBPath);


            if (!ValidateRow())
            {
                chkActive.Checked = false;
            }

            var Question = new Question
            {
                // DateTime = DateTime.Now,
                QuestionNumber = Int32.Parse(txtNumber.Text),
                QuestionText   = txtQuestion.Text,
                Participants   = txtParticipants.Text,
                AnswerText     = editor.BodyText,
                AnswerHTML     = editor.BodyHtml,
                Active         = chkActive.Checked
                                 //QuestionType = cmbQuestionType.SelectedValue.ToString()
            };

            // Add or Update an Question Item
            if (selectedQuestionItem != Guid.Empty)
            {
                Question.QuestionId = selectedQuestionItem;
                QuestionHelper.Update(Question);
            }
            else
            {
                Question.QuestionId  = Guid.NewGuid();
                selectedQuestionItem = Question.QuestionId;
                QuestionHelper.Add(Question);
            }

            FilterGridView();
            if (Question.Active == false)
            {
                chkActive.Checked = false;
            }
            if (showMessage)
            {
                MessageBox.Show("Saved OK");
            }

            return(Question);
        }
示例#12
0
        private ElectrocardiogramFormData AddElectrocardiogramFormData(Form form)
        {
            var formData = new ElectrocardiogramFormData()
            {
                Form = form,
                ElectrocardiogramActualTime = new Question {
                    Caption = "Actual Time", DataType = QuestionDataType.Date, Form = form
                },
                ElectrocardiogramAttachment = new Question {
                    Caption = "Electrocardiogram Data File", DataType = QuestionDataType.Attachment, Form = form
                }
            };

            ElectrocardiogramFormDataRepository.Add(formData);
            QuestionRepository.Add(formData.ElectrocardiogramActualTime);
            QuestionRepository.Add(formData.ElectrocardiogramAttachment);
            return(formData);
        }
示例#13
0
        public IActionResult Add([FromBody] QuestionViewModel questionViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var question = new QuestionModel
            {
                Id             = questionViewModel.Id,
                Question       = questionViewModel.Question,
                Answer         = questionViewModel.Answer,
                Level          = questionViewModel.Level,
                Correct_answer = questionViewModel.Correct_answer
            };

            _questionRepository.Add(question);
            return(Ok());
        }
        public QuestionModule()
        {
            IQuestionRepository repo = new QuestionRepository(ConfigurationManager.ConnectionStrings["happyIndex"].ConnectionString);

            Get["/api/questions"] = _ =>
            {
                var category = Request.Query.category;

                //filter the results if a category was supplied
                return(string.IsNullOrEmpty(category) ? repo.GetAllQuestions() : repo.GetByCategory(category));
            };

            Post["/api/questions"] = _ =>
            {
                var q = this.Bind <Question>();
                return(repo.Add(q.Text, q.Category));
            };
        }
        public IActionResult Create(QuestionInputViewModel questionVM)
        {
            ViewData["TopicID"] = new SelectList(Topics, "TopicID", "Description", questionVM.TopicID);

            // Set the text for choices to a list of strings
            List <string> choicesText = new List <string>()
            {
                { questionVM.Choice1 },
                { questionVM.Choice2 },
                { questionVM.Choice3 }
            };

            // A container for the choice objects
            List <Choice> choices = new List <Choice>();

            foreach (var item in choicesText)
            {
                // Create the choice objects
                Choice choice = new Choice
                {
                    Text = item
                };
                choices.Add(choice);
            }

            // Create a new entity object and set the entities properties to the values in the ViewModel
            Question question = new Question
            {
                Creator = questionVM.Creator,
                TopicID = questionVM.TopicID,
                Body    = questionVM.Body,
                Answer  = questionVM.Answer,
                Choices = choices
            };

            if (ModelState.IsValid)
            {
                _questionData.Add(question);

                return(RedirectToAction("Index", "UserAccount"));
            }

            return(View(questionVM));
        }
示例#16
0
        public bool Add(Question question)
        {
            bool Error = false;

            if (string.IsNullOrEmpty(question.Description))
            {
                Validator.AddError("Description", "O nome é obrigatório");
                Error = true;
            }

            if (Error)
            {
                return(false);
            }

            QuestionRepository.Add(question);

            return(true);
        }
        public void Add_Question_Success()
        {
            BitcoinShowDBContext context = DbContextFactory.GetContext();

            var options = RandomOptions(4).ToList();

            options.ForEach(o =>
            {
                context.Options.Add(o);
            });
            context.SaveChanges();

            QuestionRepository repository = new QuestionRepository(context);
            Question           question   = new Question();

            question.Answer = context.Options.First();
            question.Title  = "Test question";
            question.Level  = LevelEnum.Hard;

            repository.Add(question);
            Assert.True(question.Id > 0);
        }
示例#18
0
        public HttpResponseMessage PostQuestion(object questionobj)
        {
            JavaScriptSerializer js = new JavaScriptSerializer();
            var      json           = questionobj;
            Question question       = js.Deserialize <Question>(json.ToString());

            question.Active    = true;
            question.CreatedOn = DateTime.Now;
            if (ModelState.IsValid)
            {
                QuestionRepository.Add(question);
                unitOfWork.SaveChanges();
                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, question);
                response.Content = new StringContent(question.QuestionId.ToString());
                return(response);
            }
            else
            {
                var errors = ModelState.Values.SelectMany(v => v.Errors);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }
        }
示例#19
0
        private VitalsFormData AddVitalsFormData(Form form)
        {
            var formData = new VitalsFormData()
            {
                Form       = form,
                ActualTime = new Question {
                    Caption = "Actual Time", DataType = QuestionDataType.Date, Form = form
                },
                Height = new Question {
                    Caption = "Height", DataType = QuestionDataType.Number, Form = form
                },
                Weight = new Question {
                    Caption = "Weight", DataType = QuestionDataType.Number, Form = form
                },
                Temperature = new Question {
                    Caption = "Temperature", DataType = QuestionDataType.Number, Form = form
                },
                HeartRate = new Question {
                    Caption = "Heart Rate", DataType = QuestionDataType.Integer, Form = form
                },
                BloodPressureSystolic = new Question {
                    Caption = "Systolic Blood Pressure, mmHg", DataType = QuestionDataType.String, Form = form
                },
                BloodPressureDiastolic = new Question {
                    Caption = "Diastolic Blood Pressure, mmHg", DataType = QuestionDataType.String, Form = form
                }
            };

            VitalsFormDataRepository.Add(formData);
            QuestionRepository.Add(formData.ActualTime);
            QuestionRepository.Add(formData.Height);
            QuestionRepository.Add(formData.Weight);
            QuestionRepository.Add(formData.Temperature);
            QuestionRepository.Add(formData.HeartRate);
            QuestionRepository.Add(formData.BloodPressureSystolic);
            QuestionRepository.Add(formData.BloodPressureDiastolic);
            return(formData);
        }
示例#20
0
 //Purpose: Invokes 'Add(Question question)' method of 'QuestionRepository.cs' that adds an object 'question' in the 'Question' table
 //Input: 'question' object of type 'Question.cs'
 //Output: Returns the object 'question' upon its successful addition in the table
 public Question PostQuestion(Question question)
 {
     return(repo.Add(question));
 }
示例#21
0
 /// <summary>
 /// 添加新闻的互动问题
 /// </summary>
 /// <returns></returns>
 public static void Add(QuestionModel ent)
 {
     QuestionRepository.Add(ent);
 }
示例#22
0
 /// <summary>
 /// Saves the question.
 /// </summary>
 /// <param name="question">The question.</param>
 public void SaveQuestion(Question question)
 {
     QuestionRepository.Add(question);
 }
        public void Add_Question_With_Title_Greater_Than_Max_Error()
        {
            BitcoinShowDBContext context    = DbContextFactory.GetContext();
            QuestionRepository   repository = new QuestionRepository(context);

            Question option = new Question();

            option.Title = new String('a', 201);

            ArgumentOutOfRangeException ex = Assert.Throws <ArgumentOutOfRangeException>(() => repository.Add(option));

            Assert.NotNull(ex);
            Assert.Equal(nameof(option.Title), ex.ParamName);
        }
 public int AddQuestion(Question question)
 {
     return(_questionRepository.Add(question));
 }
示例#25
0
        public void UpdateReponseWithCorrectParameter()
        {
            var options = new DbContextOptionsBuilder <EvaluationContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var memoryContext = new EvaluationContext(options))
            {
                //Arrange
                IFormRepository                formRepository                = new FormRepository(memoryContext);
                IResponseRepository            responseRepository            = new ResponseRepository(memoryContext);
                IQuestionRepository            questionRepository            = new QuestionRepository(memoryContext);
                ISubmissionRepository          submissionRepository          = new SubmissionRepository(memoryContext);
                IQuestionPropositionRepository questionPropositionRepository = new QuestionPropositionRepository(memoryContext);

                #region Form

                var Form1 = new FormTO
                {
                    Name = new MultiLanguageString
                           (
                        "Daily evaluation form",
                        "Formulaire d'évaluation journalier",
                        "Dagelijks evaluatieformulier"
                           ),
                };
                var formAdded1 = formRepository.Add(Form1);
                memoryContext.SaveChanges();

                #endregion

                #region Questions

                var Question1 = new QuestionTO
                {
                    FormId   = formAdded1.Id,
                    Position = 1,
                    Libelle  = new MultiLanguageString
                               (
                        "What is your general impression after this first day of training ?",
                        "Quelle est votre impression générale après cette première journée de formation ?",
                        "Wat is je algemene indruk na deze eerste dag van training ?"
                               ),
                    Type = QuestionType.SingleChoice,
                };

                var Question2 = new QuestionTO
                {
                    FormId   = formAdded1.Id,
                    Position = 2,
                    Libelle  = new MultiLanguageString
                               (
                        "Is the pace right for you ?",
                        "Est-ce que le rythme vous convient ?",
                        "Is het tempo geschikt voor u ?"
                               ),
                    Type = QuestionType.SingleChoice,
                };

                var Question3 = new QuestionTO
                {
                    FormId   = formAdded1.Id,
                    Position = 3,
                    Libelle  = new MultiLanguageString
                               (
                        "Do you have questions related to the subject studied today ?",
                        "Avez-vous des questions relatives à la matière étudiée aujourd’hui ?",
                        "Heb je vragen over het onderwerp dat vandaag is bestudeerd ?"
                               ),
                    Type = QuestionType.Open
                };

                var Question4 = new QuestionTO
                {
                    FormId   = formAdded1.Id,
                    Position = 4,
                    Libelle  = new MultiLanguageString
                               (
                        "Do you have specific questions / particular topics that you would like deepen during this training ?",
                        "Avez-vous des questions spécifiques/sujets particuliers que vous aimeriez approfondir durant cette formation ?",
                        "Heeft u specifieke vragen / specifieke onderwerpen die u graag zou willen verdiepen tijdens deze training ?"
                               ),
                    Type = QuestionType.Open
                };

                var Question5 = new QuestionTO
                {
                    FormId   = formAdded1.Id,
                    Position = 5,
                    Libelle  = new MultiLanguageString
                               (
                        "What objectives do you pursue by following this training ?",
                        "Quels objectifs poursuivez-vous en suivant cette formation ?",
                        "Welke doelstellingen streeft u na door deze training te volgen?"
                               ),
                    Type = QuestionType.Open
                };

                var questionAdded1 = questionRepository.Add(Question1);
                var questionAdded2 = questionRepository.Add(Question2);
                var questionAdded3 = questionRepository.Add(Question3);
                var questionAdded4 = questionRepository.Add(Question4);
                var questionAdded5 = questionRepository.Add(Question5);
                memoryContext.SaveChanges();

                #endregion

                #region QuestionProposition
                var QuestionProposition1 = new QuestionPropositionTO
                {
                    QuestionId = questionAdded1.Id,
                    Libelle    = new MultiLanguageString("good", "bonne", "goed"),
                    Position   = 1
                };

                var QuestionProposition2 = new QuestionPropositionTO
                {
                    QuestionId = questionAdded1.Id,
                    Libelle    = new MultiLanguageString("medium", "moyenne", "gemiddelde"),
                    Position   = 2
                };

                var QuestionProposition3 = new QuestionPropositionTO
                {
                    QuestionId = questionAdded1.Id,
                    Libelle    = new MultiLanguageString("bad", "mauvaise", "slecht"),
                    Position   = 3
                };

                var QuestionProposition4 = new QuestionPropositionTO
                {
                    QuestionId = questionAdded2.Id,
                    Libelle    = new MultiLanguageString("yes", "oui", "ja"),
                    Position   = 1
                };

                var QuestionProposition5 = new QuestionPropositionTO
                {
                    QuestionId = questionAdded2.Id,
                    Libelle    = new MultiLanguageString("too fast", "trop rapide", "te snel"),
                    Position   = 2
                };

                var QuestionProposition6 = new QuestionPropositionTO
                {
                    QuestionId = questionAdded2.Id,
                    Libelle    = new MultiLanguageString("too slow", "trop lent", "te langzaam"),
                    Position   = 3
                };

                var questionPropositionAdded1 = questionPropositionRepository.Add(QuestionProposition1);
                var questionPropositionAdded2 = questionPropositionRepository.Add(QuestionProposition2);
                var questionPropositionAdded3 = questionPropositionRepository.Add(QuestionProposition3);
                var questionPropositionAdded4 = questionPropositionRepository.Add(QuestionProposition4);
                var questionPropositionAdded5 = questionPropositionRepository.Add(QuestionProposition5);
                var questionPropositionAdded6 = questionPropositionRepository.Add(QuestionProposition6);

                memoryContext.SaveChanges();

                #endregion

                #region Submission
                var submission1 = new SubmissionTO
                {
                    SessionId  = 30,
                    AttendeeId = 1012,
                    Date       = DateTime.Today,
                };
                var submission2 = new SubmissionTO
                {
                    SessionId  = 31,
                    AttendeeId = 2607,
                    Date       = DateTime.Today,
                };
                var submission3 = new SubmissionTO
                {
                    SessionId  = 2,
                    AttendeeId = 1612,
                    Date       = DateTime.Today,
                };

                var submissionAdded1 = submissionRepository.Add(submission1);
                var submissionAdded2 = submissionRepository.Add(submission2);
                var submissionAdded3 = submissionRepository.Add(submission3);
                memoryContext.SaveChanges();

                #endregion

                #region Responses
                var response1 = new ResponseTO
                {
                    Question            = questionAdded1,
                    Submission          = submissionAdded1,
                    QuestionProposition = questionPropositionAdded1,
                };

                var response2 = new ResponseTO
                {
                    Question            = questionAdded2,
                    Submission          = submissionAdded2,
                    QuestionProposition = questionPropositionAdded2,
                };

                var response3 = new ResponseTO
                {
                    Question   = questionAdded3,
                    Submission = submissionAdded3,
                    Text       = "Ceci est une réponse à une question ouverte",
                    //QuestionProposition = QuestionProposition3,
                };

                var response4 = new ResponseTO
                {
                    Question   = questionAdded4,
                    Submission = submissionAdded1,
                    Text       = "Ceci est une réponse à une question ouverte",
                };

                //Assert
                var responseAdded1 = responseRepository.Add(response1);
                var responseAdded2 = responseRepository.Add(response2);
                var responseAdded3 = responseRepository.Add(response3);
                var responseAdded4 = responseRepository.Add(response4);
                memoryContext.SaveChanges();

                #endregion
                //Act
                var result1 = responseRepository.Remove(responseAdded1);
                memoryContext.SaveChanges();
                var submissionInjected = new SubmissionTO {
                    AttendeeId = 007, Date = DateTime.Now, SessionId = 36
                };

                var responseToUpadate = new ResponseTO
                {
                    Id                  = responseAdded2.Id,
                    Question            = questionAdded2,
                    Submission          = submissionInjected,
                    QuestionProposition = questionPropositionAdded2,
                };

                var result = responseRepository.Update(responseToUpadate);

                // Assert
                Assert.IsTrue(result1);
                Assert.AreEqual(36, result.Submission.SessionId);
            }
        }
        public void AddFormReturnsCorrectNumberOfForm()
        {
            var options = new DbContextOptionsBuilder <EvaluationContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using (var memoryContext = new EvaluationContext(options))
            {
                // Arrange
                IFormRepository                formRepository                = new FormRepository(memoryContext);
                IQuestionRepository            questionRepository            = new QuestionRepository(memoryContext);
                IQuestionPropositionRepository questionPropositionRepository = new QuestionPropositionRepository(memoryContext);

                #region Form

                var Form1 = new FormTO
                {
                    Name = new MultiLanguageString
                           (
                        "Daily evaluation form",
                        "Formulaire d'évaluation journalier",
                        "Dagelijks evaluatieformulier"
                           ),
                };

                var Form2 = new FormTO
                {
                    Name = new MultiLanguageString
                           (
                        "Daily evaluation form2",
                        "Formulaire d'évaluation journalier2",
                        "Dagelijks evaluatieformulier2"
                           ),
                };

                var Form3 = new FormTO
                {
                    Name = new MultiLanguageString
                           (
                        "Daily evaluation form3",
                        "Formulaire d'évaluation journalier3",
                        "Dagelijks evaluatieformulier3"
                           ),
                };
                var formAdded1 = formRepository.Add(Form1);
                var formAdded2 = formRepository.Add(Form2);
                var formAdded3 = formRepository.Add(Form3);
                memoryContext.SaveChanges();

                #endregion

                #region Questions

                var Question1 = new QuestionTO
                {
                    Form     = formAdded1,
                    Position = 1,
                    Libelle  = new MultiLanguageString
                               (
                        "What is your general impression after this first day of training ?",
                        "Quelle est votre impression générale après cette première journée de formation ?",
                        "Wat is je algemene indruk na deze eerste dag van training ?"
                               ),
                    Type = QuestionType.SingleChoice,
                };

                var Question2 = new QuestionTO
                {
                    Form     = formAdded1,
                    Position = 2,
                    Libelle  = new MultiLanguageString
                               (
                        "Is the pace right for you ?",
                        "Est-ce que le rythme vous convient ?",
                        "Is het tempo geschikt voor u ?"
                               ),
                    Type = QuestionType.SingleChoice,
                };

                var Question3 = new QuestionTO
                {
                    Form     = formAdded1,
                    Position = 3,
                    Libelle  = new MultiLanguageString
                               (
                        "Do you have questions related to the subject studied today ?",
                        "Avez-vous des questions relatives à la matière étudiée aujourd’hui ?",
                        "Heb je vragen over het onderwerp dat vandaag is bestudeerd ?"
                               ),
                    Type = QuestionType.Open
                };

                var Question4 = new QuestionTO
                {
                    Form     = formAdded1,
                    Position = 4,
                    Libelle  = new MultiLanguageString
                               (
                        "Do you have specific questions / particular topics that you would like deepen during this training ?",
                        "Avez-vous des questions spécifiques/sujets particuliers que vous aimeriez approfondir durant cette formation ?",
                        "Heeft u specifieke vragen / specifieke onderwerpen die u graag zou willen verdiepen tijdens deze training ?"
                               ),
                    Type = QuestionType.Open
                };

                var Question5 = new QuestionTO
                {
                    Form     = formAdded1,
                    Position = 5,
                    Libelle  = new MultiLanguageString
                               (
                        "What objectives do you pursue by following this training ?",
                        "Quels objectifs poursuivez-vous en suivant cette formation ?",
                        "Welke doelstellingen streeft u na door deze training te volgen?"
                               ),
                    Type = QuestionType.Open
                };

                var questionAdded1 = questionRepository.Add(Question1);
                var questionAdded2 = questionRepository.Add(Question2);
                var questionAdded3 = questionRepository.Add(Question3);
                var questionAdded4 = questionRepository.Add(Question4);
                var questionAdded5 = questionRepository.Add(Question5);
                memoryContext.SaveChanges();

                #endregion

                #region QuestionProposition
                var QuestionProposition1 = new QuestionPropositionTO
                {
                    Question = questionAdded1,
                    Libelle  = new MultiLanguageString("good", "bonne", "goed"),
                    Position = 1
                };

                var QuestionProposition2 = new QuestionPropositionTO
                {
                    Question = questionAdded1,
                    Libelle  = new MultiLanguageString("medium", "moyenne", "gemiddelde"),
                    Position = 2
                };

                var QuestionProposition3 = new QuestionPropositionTO
                {
                    Question = questionAdded1,
                    Libelle  = new MultiLanguageString("bad", "mauvaise", "slecht"),
                    Position = 3
                };

                var QuestionProposition4 = new QuestionPropositionTO
                {
                    Question = questionAdded2,
                    Libelle  = new MultiLanguageString("yes", "oui", "ja"),
                    Position = 1
                };

                var QuestionProposition5 = new QuestionPropositionTO
                {
                    Question = questionAdded2,
                    Libelle  = new MultiLanguageString("too fast", "trop rapide", "te snel"),
                    Position = 2
                };

                var QuestionProposition6 = new QuestionPropositionTO
                {
                    Question = questionAdded2,
                    Libelle  = new MultiLanguageString("too slow", "trop lent", "te langzaam"),
                    Position = 3
                };

                var questionPropositionAdded1 = questionPropositionRepository.Add(QuestionProposition1);
                var questionPropositionAdded2 = questionPropositionRepository.Add(QuestionProposition2);
                var questionPropositionAdded3 = questionPropositionRepository.Add(QuestionProposition3);
                var questionPropositionAdded4 = questionPropositionRepository.Add(QuestionProposition4);
                var questionPropositionAdded5 = questionPropositionRepository.Add(QuestionProposition5);
                var questionPropositionAdded6 = questionPropositionRepository.Add(QuestionProposition6);
                memoryContext.SaveChanges();
                #endregion

                // Act
                var forms                = formRepository.GetAll();
                var questions            = questionRepository.GetAll();
                var questionPropositions = questionPropositionRepository.GetAll();
                var count                = forms.Count();

                // Assert
                Assert.AreEqual(3, count);

                foreach (var form in forms)
                {
                    Console.WriteLine(form.Id);
                    Console.WriteLine(form.Name.French);
                    Console.WriteLine();

                    foreach (var question in questions.Where(q => q.Form.Id == form.Id).ToList())
                    {
                        Console.WriteLine($"\tId : {question.Id} - Position : {question.Position} - Type : {question.Type} - {question.Libelle.French}");
                        Console.WriteLine();

                        foreach (var questionProposition in questionPropositions.Where(qp => qp.Question.Id == question.Id))
                        {
                            Console.WriteLine($"\tId : {questionProposition.Id} - Position : {questionProposition.Position} - {questionProposition.Libelle.French}");
                            Console.WriteLine();
                        }
                    }
                }
            }
        }
示例#27
0
        public void SaveQuiz(QuizDto quiz)
        {
            ValidateQuiz(quiz);

            if (quiz.QuizId == 0)
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    try
                    {
                        QuizModel quizModel = new QuizModel();
                        quizModel.QuizName = quiz.Name;

                        quizRepository.Add(quizModel);

                        foreach (QuestionDto question in quiz.Questions)
                        {
                            QuestionModel questionModel = new QuestionModel()
                            {
                                Question      = question.Question,
                                AnswerGroupId = 1
                            };

                            questionRepository.Add(questionModel);

                            quizHasQuestionsRepository.Add(new QuizHasQuestionModel()
                            {
                                QuizId     = quizModel.QuizId,
                                QuestionId = questionModel.QuestionId
                            });
                        }

                        scope.Complete();
                    }
                    catch (Exception ex)
                    {
                        throw new Exception($"Error en repositorio:\n{ex.Message}");
                    }
                }
            }
            else
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    try
                    {
                        quizRepository.Add(new QuizModel()
                        {
                            QuizName = quiz.Name
                        });

                        foreach (QuestionDto question in quiz.Questions)
                        {
                            questionRepository.Add(new QuestionModel()
                            {
                                Question      = question.Question,
                                AnswerGroupId = 1
                            });

                            quizHasQuestionsRepository.Add(new QuizHasQuestionModel()
                            {
                                QuizId     = quiz.QuizId,
                                QuestionId = question.QuestionId
                            });
                        }

                        scope.Complete();
                    }
                    catch (Exception ex)
                    {
                        throw new Exception("Error en repositorio");
                    }
                }
            }
        }