예제 #1
0
        public EaControllerBase(IServiceProvider serviceProvider)
        {
            this.examAnswerContext = serviceProvider.GetService <ExamAnswerContext>();
            this.mapper            = serviceProvider.GetService <IMapper>();
            cache = serviceProvider.GetService <IMemoryCache>();
            this.configuration = serviceProvider.GetService <IConfiguration>();

            pageBaseCanonicalUrl = configuration.GetValue(typeof(string), "PageBaseCanonicalUrl")?.ToString();
        }
예제 #2
0
        public static void Main(string[] args)
        {
            //1. Get the IWebHost which will host this application.
            IWebHost host = CreateWebHostBuilder(args).Build();

            //2. Find the service layer within our scope.
            using (IServiceScope scope = host.Services.CreateScope())
            {
                //3. Get the instance of BoardGamesDBContext in our services layer
                IServiceProvider  services = scope.ServiceProvider;
                ExamAnswerContext context  = services.GetRequiredService <ExamAnswerContext>();

                //4. Call the DataGenerator to create sample data
                DataGenerator.Initialize(context);
            }

            //Continue to run the application
            host.Run();
        }
예제 #3
0
        public static List <ExamEntity> Initialize(ExamAnswerContext context)
        {
            string allText = File.ReadAllText("Exams\\Salesforce-Certified-Field-Service-Lightning-Consultant.txt");

            var quesions = allText.Split("###", StringSplitOptions.RemoveEmptyEntries).ToList();

            List <QuestionEntity> qeList = new List <QuestionEntity>();

            foreach (string question in quesions)
            {
                string[] questionsGroups = question.Split($"---", StringSplitOptions.RemoveEmptyEntries);

                List <string> questionContent = questionsGroups[0].Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries).ToList();
                List <string> questionAnswers = questionsGroups[1].Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries).ToList();
                //var questionExplanations = questionsGroups[2].Split(Environment.NewLine);
                //var questionReferences = questionsGroups[3].Split(Environment.NewLine);
                QuestionEntity qe = new QuestionEntity();
                qe.Order = quesions.IndexOf(question);
                if (questionContent.FirstOrDefault()?.Equals("C") == true)
                {
                    qe.QuestionType = QuestionType.CheckBox;
                    questionContent = questionContent.Skip(1).ToList();
                }

                foreach (string content in questionContent)
                {
                    ContentEntity contentEntity = new ContentEntity()
                    {
                        Text  = content,
                        Order = questionContent.IndexOf(content),
                    };
                    qe.Contents.Add(contentEntity);
                }

                foreach (string answer in questionAnswers)
                {
                    AnswerEntity answerEntity = new AnswerEntity()
                    {
                        Text  = answer,
                        Order = questionAnswers.IndexOf(answer),
                    };
                    if (answer.EndsWith("*"))
                    {
                        answerEntity.IsCorrect = true;
                        answerEntity.Text      = answer.TrimEnd('*').Trim();
                    }
                    qe.Answers.Add(answerEntity);
                }

                qeList.Add(qe);
            }

            List <ExamEntity> result = new List <ExamEntity>();

            ExamEntity adm201 = new ExamEntity()
            {
                Provider        = "Salesforce",
                ExamProviderUrl = "https://www.exam-answer.com/salesforce",
                ExamUrl         = "https://www.exam-answer.com/salesforce/adm-201",
                Code            = "ADM-201",
                Name            = "Administration Essentials for New Admins",
                PageTitle       = "Exam ADM-201: Administration Essentials for New Admins",
                PageDescription = "Prepare for Exam ADM-201: Administration Essentials for New Admins. Free demo questions with answers and explanations.",
                Questions       = GetQuestions("Exams\\adm-201.txt"),
                Order           = 3,
            };

            context?.Exams?.Add(adm201);
            result.Add(adm201);

            ExamEntity scfslc = new ExamEntity()
            {
                Provider        = "Salesforce",
                ExamProviderUrl = "https://www.exam-answer.com/salesforce",
                ExamUrl         = "https://www.exam-answer.com/salesforce/salesforce-certified-field-service-lightning-consultant",
                Code            = "Salesforce-Certified-Field-Service-Lightning-Consultant",
                Name            = "Salesforce Certified Field Service Lightning Consultant",
                PageTitle       = "Salesforce Certified Field Service Lightning Consultant",
                PageDescription = "Prepare for Salesforce Certified Field Service Lightning Consultant. Free demo questions with answers and explanations.",
                Questions       = qeList,
                Order           = 2,
            };

            context?.Exams?.Add(scfslc);
            result.Add(scfslc);

            ExamEntity crt251 = new ExamEntity()
            {
                Provider        = "Salesforce",
                Code            = "CRT-251",
                ExamProviderUrl = "https://www.exam-answer.com/salesforce",
                ExamUrl         = "https://www.exam-answer.com/salesforce/crt-251",
                Name            = "Sales Cloud Consultant",
                PageTitle       = "Exam CRT-251: Sales Cloud Consultant",
                PageDescription = "Prepare for Exam CRT-251: Sales Cloud Consultant. Free demo questions with answers and explanations.",
                Questions       = new List <QuestionEntity>(),
                Order           = 1,
            };

            crt251.Questions.Add(Q1.Instance);
            crt251.Questions.Add(Q2.Instance);
            crt251.Questions.Add(Q3.Instance);
            crt251.Questions.Add(Q4.Instance);
            crt251.Questions.Add(Q5.Instance);
            crt251.Questions.Add(Q6.Instance);
            crt251.Questions.Add(Q7.Instance);
            crt251.Questions.Add(Q8.Instance);
            crt251.Questions.Add(Q9.Instance);
            crt251.Questions.Add(Q10.Instance);
            crt251.Questions.Add(Q11.Instance);
            crt251.Questions.Add(Q12.Instance);
            crt251.Questions.Add(Q13.Instance);
            crt251.Questions.Add(Q14.Instance);
            crt251.Questions.Add(Q15.Instance);
            crt251.Questions.Add(Q16.Instance);
            crt251.Questions.Add(Q17.Instance);
            crt251.Questions.Add(Q18.Instance);
            crt251.Questions.Add(Q19.Instance);
            crt251.Questions.Add(Q20.Instance);
            crt251.Questions.Add(Q21.Instance);
            crt251.Questions.Add(Q22.Instance);
            crt251.Questions.Add(Q23.Instance);
            crt251.Questions.Add(Q24.Instance);
            crt251.Questions.Add(Q25.Instance);
            crt251.Questions.Add(Q26.Instance);
            crt251.Questions.Add(Q27.Instance);
            crt251.Questions.Add(Q28.Instance);
            crt251.Questions.Add(Q29.Instance);
            crt251.Questions.Add(Q30.Instance);
            crt251.Questions.Add(Q31.Instance);
            crt251.Questions.Add(Q32.Instance);
            crt251.Questions.Add(Q33.Instance);
            crt251.Questions.Add(Q34.Instance);
            crt251.Questions.Add(Q35.Instance);
            crt251.Questions.Add(Q36.Instance);
            crt251.Questions.Add(Q37.Instance);
            crt251.Questions.Add(Q38.Instance);
            crt251.Questions.Add(Q39.Instance);
            crt251.Questions.Add(Q40.Instance);
            crt251.Questions.Add(Q41.Instance);
            crt251.Questions.Add(Q42.Instance);
            crt251.Questions.Add(Q43.Instance);
            crt251.Questions.Add(Q44.Instance);
            crt251.Questions.Add(Q45.Instance);
            crt251.Questions.Add(Q46.Instance);
            crt251.Questions.Add(Q47.Instance);
            crt251.Questions.Add(Q48.Instance);
            crt251.Questions.Add(Q49.Instance);
            crt251.Questions.Add(Q50.Instance);
            crt251.Questions.Add(Q51.Instance);
            crt251.Questions.Add(Q52.Instance);
            crt251.Questions.Add(Q53.Instance);
            crt251.Questions.Add(Q54.Instance);
            crt251.Questions.Add(Q55.Instance);
            crt251.Questions.Add(Q56.Instance);
            crt251.Questions.Add(Q57.Instance);
            crt251.Questions.Add(Q58.Instance);
            crt251.Questions.Add(Q59.Instance);
            crt251.Questions.Add(Q60.Instance);
            crt251.Questions.Add(Q61.Instance);
            crt251.Questions.Add(Q62.Instance);
            crt251.Questions.Add(Q63.Instance);
            crt251.Questions.Add(Q64.Instance);
            crt251.Questions.Add(Q65.Instance);
            crt251.Questions.Add(Q66.Instance);
            crt251.Questions.Add(Q67.Instance);
            crt251.Questions.Add(Q68.Instance);
            crt251.Questions.Add(Q69.Instance);
            crt251.Questions.Add(Q70.Instance);
            crt251.Questions.Add(Q71.Instance);
            crt251.Questions.Add(Q72.Instance);
            crt251.Questions.Add(Q73.Instance);
            crt251.Questions.Add(Q74.Instance);
            crt251.Questions.Add(Q75.Instance);
            crt251.Questions.Add(Q76.Instance);
            crt251.Questions.Add(Q77.Instance);
            crt251.Questions.Add(Q78.Instance);
            crt251.Questions.Add(Q79.Instance);
            crt251.Questions.Add(Q80.Instance);
            crt251.Questions.Add(Q81.Instance);
            crt251.Questions.Add(Q82.Instance);
            crt251.Questions.Add(Q83.Instance);
            crt251.Questions.Add(Q84.Instance);
            crt251.Questions.Add(Q85.Instance);
            crt251.Questions.Add(Q86.Instance);
            crt251.Questions.Add(Q87.Instance);
            crt251.Questions.Add(Q88.Instance);
            crt251.Questions.Add(Q89.Instance);
            crt251.Questions.Add(Q90.Instance);
            crt251.Questions.Add(Q91.Instance);
            crt251.Questions.Add(Q92.Instance);
            crt251.Questions.Add(Q93.Instance);
            crt251.Questions.Add(Q94.Instance);
            crt251.Questions.Add(Q95.Instance);
            crt251.Questions.Add(Q96.Instance);
            crt251.Questions.Add(Q97.Instance);
            crt251.Questions.Add(Q98.Instance);
            crt251.Questions.Add(Q99.Instance);
            crt251.Questions.Add(Q100.Instance);

            crt251.ShowUdemy        = false;
            crt251.UdemyLinkUrl     = "https://www.udemy.com/salesforce-crt-251-sales-cloud-consultant-exam-questions/?couponCode=50_OFF";
            crt251.UdemyLinkMessage = "Salesforce CRT-251: Sales Cloud Consultant - 50% OFF";
            crt251.UdemyMessage     =
                "If you like what you see, please support the future development of our web site by buying this practice test at Udemy." +
                " Click this link for a 50% discount. The price is ONLY 9.99!";

            context?.Exams?.Add(crt251);

            result.Add(crt251);

            ExamEntity saa_c01 = new ExamEntity()
            {
                Provider        = "Amazon",
                Code            = "SAA-C01",
                Name            = "AWS Certified Solutions Architect - Associate",
                ExamProviderUrl = "https://www.exam-answer.com/amazon",
                ExamUrl         = "https://www.exam-answer.com/amazon/saa-c01",
                PageTitle       = "Exam SAA-C01: AWS Certified Solutions Architect – Associate",
                PageDescription = "Prepare for Exam SAA-C01: AWS Certified Solutions Architect – Associate. Free demo questions with answers and explanations.",
                Questions       = GetQuestions("Exams\\SAA-C01.txt"),
                Order           = 1,
            };

            context?.Exams?.Add(saa_c01);
            result.Add(saa_c01);

            ExamEntity saa_c02 = new ExamEntity()
            {
                Provider        = "Amazon",
                Code            = "SAA-C02",
                Name            = "AWS Certified Solutions Architect - Associate",
                ExamProviderUrl = "https://www.exam-answer.com/amazon",
                ExamUrl         = "https://www.exam-answer.com/amazon/saa-c02",
                PageTitle       = "Exam SAA-C02: AWS Certified Solutions Architect – Associate",
                PageDescription = "Prepare for Exam SAA-C02: AWS Certified Solutions Architect – Associate. Free demo questions with answers and explanations.",
                Questions       = GetQuestions("Exams\\SAA-C02.txt"),
                Order           = 2,
            };

            context?.Exams?.Add(saa_c02);
            result.Add(saa_c02);

            ExamEntity slf_c01 = new ExamEntity()
            {
                Provider        = "Amazon",
                Code            = "CLF-C01",
                Name            = "AWS Certified Cloud Practitioner",
                ExamProviderUrl = "https://www.exam-answer.com/amazon",
                ExamUrl         = "https://www.exam-answer.com/amazon/clf-c01",
                PageTitle       = "Exam CLF-C01: AWS Certified Cloud Practitioner",
                PageDescription = "Prepare for Exam CLF-C01: AWS Certified Cloud Practitioner. Free demo questions with answers and explanations.",
                Questions       = GetQuestions("Exams\\CLF-C01.txt"),
                Order           = 3,
            };

            context?.Exams?.Add(slf_c01);
            result.Add(slf_c01);


            ExamEntity az300 = new ExamEntity()
            {
                Provider        = "Microsoft",
                Code            = "AZ-300",
                Name            = "Microsoft Azure Architect Technologies",
                ExamProviderUrl = "https://www.exam-answer.com/microsoft",
                ExamUrl         = "https://www.exam-answer.com/microsoft/az-300",
                PageTitle       = "Exam AZ-300: Microsoft Azure Architect Technologies",
                PageDescription = "Prepare for Exam AZ-300: Microsoft Azure Architect Technologies. Free demo questions with answers and explanations.",
                Questions       = GetQuestions("Exams\\az-300.txt"),
                Order           = 2,
            };

            context?.Exams?.Add(az300);
            result.Add(az300);

            ExamEntity az400 = new ExamEntity()
            {
                Provider        = "Microsoft",
                Code            = "AZ-400",
                ExamProviderUrl = "https://www.exam-answer.com/microsoft",
                ExamUrl         = "https://www.exam-answer.com/microsoft/az-400",
                Name            = "Designing and Implementing Microsoft DevOps Solutions",
                PageTitle       = "Exam AZ-400: Designing and Implementing Microsoft DevOps Solutions",
                PageDescription = "Prepare for Exam AZ-400: Designing and Implementing Microsoft DevOps Solutions. Free demo questions with answers and explanations.",
                Questions       = GetQuestions("Exams\\az-400.txt"),
                Order           = 4,
            };

            context?.Exams?.Add(az400);
            result.Add(az400);

            ExamEntity az100 = new ExamEntity()
            {
                Provider        = "Microsoft",
                Code            = "AZ-100",
                ExamProviderUrl = "https://www.exam-answer.com/microsoft",
                ExamUrl         = "https://www.exam-answer.com/microsoft/az-100",
                Name            = "Microsoft Azure Infrastructure and Deployment",
                PageTitle       = "Exam AZ-100: Microsoft Azure Infrastructure and Deployment",
                PageDescription = "Prepare for Exam AZ-100: Microsoft Azure Infrastructure and Deployment. Free demo questions with answers and explanations.",
                Questions       = GetQuestions("Exams\\az-100.txt"),
                Order           = 1,
            };

            context?.Exams?.Add(az100);
            result.Add(az100);

            ExamEntity az301 = new ExamEntity()
            {
                Provider        = "Microsoft",
                Code            = "AZ-301",
                ExamProviderUrl = "https://www.exam-answer.com/microsoft",
                ExamUrl         = "https://www.exam-answer.com/microsoft/az-301",
                Name            = "Microsoft Azure Architect Design",
                PageTitle       = "Exam AZ-301: Microsoft Azure Architect Design",
                PageDescription = "Prepare for Exam AZ-301: Microsoft Azure Architect Design. Free demo questions with answers and explanations.",
                Questions       = GetQuestions("Exams\\az-301.txt"),
                Order           = 3,
            };

            context?.Exams?.Add(az301);
            result.Add(az301);

            ExamEntity az900 = new ExamEntity()
            {
                Provider        = "Microsoft",
                Code            = "AZ-900",
                ExamProviderUrl = "https://www.exam-answer.com/microsoft",
                ExamUrl         = "https://www.exam-answer.com/microsoft/az-900",
                Name            = "Microsoft Azure Fundamentals",
                PageTitle       = "Exam AZ-900: Microsoft Azure Fundamentals",
                PageDescription = "Prepare for Exam AZ-900: Microsoft Azure Fundamentals. Free demo questions with answers and explanations.",
                Questions       = new List <QuestionEntity>(),
                Order           = 5,
            };


            az900.ShowUdemy        = false;
            az900.UdemyLinkUrl     = "https://www.udemy.com/course/exam-az-900-microsoft-azure-fundamentals-exam-questions/?couponCode=50_OFF";
            az900.UdemyLinkMessage = "Exam AZ-900: Microsoft Azure Fundamentals, Exam Question - 50 % OFF";
            az900.UdemyMessage     =
                "If you like what you see, please support the future development of our web site by buying this practice test at Udemy." +
                " Click this link for a 50% discount. The price is ONLY 12.99!";

            List <FieldInfo> az900Fields = typeof(Az900).GetFields(BindingFlags.Static |
                                                                   BindingFlags.Public |
                                                                   BindingFlags.NonPublic).ToList();

            az900Fields = az900Fields.OrderBy(a =>
            {
                int order = int.Parse(a.Name.Replace("Q", string.Empty).Replace("Instance", string.Empty));
                return(order);
            }).ToList();

            foreach (FieldInfo f in az900Fields)
            {
                QuestionEntity qe = f.GetValue(null) as QuestionEntity;
                az900.Questions.Add(qe);
            }

            az900.Questions.AddRange(GetQuestions("Exams\\az-900.txt", az900.Questions.Count));

            context?.Exams?.Add(az900);
            result.Add(az900);

            context?.SaveChanges();

            AllExams = result;
            return(result);
        }