Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ProgramCharacteristics"/> class.
        /// </summary>
        /// <param name="ageGroup">The age group.</param>
        /// <param name="genderSpecification">The gender specification.</param>
        /// <param name="treatmentApproach">The treatment approach.</param>
        /// <param name="programCategory">The program category.</param>
        public ProgramCharacteristics(AgeGroup ageGroup,
                                      GenderSpecification genderSpecification,
                                      TreatmentApproach treatmentApproach,
                                      ProgramCategory programCategory)
            : this()
        {
            Check.IsNotNull(ageGroup, "Age Group is required.");
            Check.IsNotNull(genderSpecification, "Gender Specification is required.");
            Check.IsNotNull(treatmentApproach, "Treatment Approach is required.");
            Check.IsNotNull(programCategory, "Program Category is required.");

            _ageGroup            = ageGroup;
            _genderSpecification = genderSpecification;
            _treatmentApproach   = treatmentApproach;
            _programCategory     = programCategory;
        }
        public static string analyzeData(IEnumerable <Student> students, string subject, string yearGroup, out string message)
        {
            var spec1 = new ClassSpecification(subject);

            if (spec1.subjectName == "Invalid")
            {
                message = "Invalid Input";
                return("Invalid Input");
            }

            var bf = new BetterFilter();

            var           SubjectStud   = bf.filterItems(students, spec1);
            var           maleCount     = 0;
            var           femaleCount   = 0;
            var           counter       = 0;
            var           boySpec       = new GenderSpecification("Boy");
            var           swString1     = $"In year {yearGroup}, People who do {subject} are: \n \n  ";
            StringBuilder stringBuilder = new StringBuilder();

            foreach (var student in SubjectStud)
            {
                string string2 = $"{student.Name}, ";
                if (counter == 6)
                {
                    string2 = $"{student.Name} \n  ";
                    counter = -1;
                }

                stringBuilder.Append(string2);
                if (boySpec.IsSatisfied(student))
                {
                    maleCount++;
                }
                else if (!boySpec.IsSatisfied(student))
                {
                    femaleCount++;
                }

                counter++;
            }

            Console.ForegroundColor = ConsoleColor.DarkMagenta;
            var swString2 = stringBuilder.ToString();
            var swString3 = "\n";
            var swString4 = $"    {SubjectStud.Count()} people do {subject}\n";
            var swString5 = $"    {maleCount} boys do {subject}";
            var swString6 = $"    {femaleCount} girls do {subject} \n";
            var swString7 = "========================================================================" +
                            "================================================ \n";


            var semiCompletedString = swString2 + swString3;
            var combinedString      = swString1 + swString2 + swString3 + swString4 + swString5 + swString6
                                      + swString7;

            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine(swString1);
            System.Threading.Thread.Sleep(1000);
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine(semiCompletedString);
            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.WriteLine(swString4 + swString5 + swString6);

            message = "Successful";
            return(combinedString);
        }