コード例 #1
0
        /// <summary>
        /// Loads single class from Usos class details page
        /// </summary>
        /// <param name="classPageLink">Link to class details</param>
        /// <param name="httpClient">Client used to download data</param>
        /// <returns></returns>
        private async Task <UniversityClass> ExtractSingeClass(string classPageLink, HttpClient httpClient)
        {
            var response = await httpClient.GetAsync(classPageLink);

            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new IOException("Unable to open class link");
            }

            var stream = await response.Content.ReadAsStreamAsync();

            var document = new HtmlDocument();

            document.Load(stream);

            var contentDiv = document.DocumentNode.SelectSingleNode(@"//div[@class='wrtext']");
            var textNode   = contentDiv.SelectSingleNode(@"h1");

            var className = textNode.SelectSingleNode(@"a").InnerText;

            var universityClass = new UniversityClass()
            {
                Name = className
            };

            return(universityClass);
        }
コード例 #2
0
        public UniversityClass[] GetInstructorClasses(int instructorId)
        {
            UniversityClass[] universityClasses = new UniversityClass[0];


            for (int index = 0; index < _universityData.InstructorClasses.Length; index++)
            {
                InstructorClass instructorClass = _universityData.InstructorClasses[index];

                if (instructorClass.InstructorId.Equals(instructorId))
                {
                    for (int indexJ = 0; indexJ < _universityData.UniversityClasses.Length; indexJ++)
                    {
                        UniversityClass universityClass = _universityData.UniversityClasses[indexJ];

                        if (universityClass.CourseId.Equals(instructorClass.CourseId))
                        {
                            Array.Resize(ref universityClasses, universityClasses.Length + 1);

                            universityClasses[universityClasses.Length - 1] = universityClass;
                        }
                    }
                }
            }

            return(universityClasses);
        }
コード例 #3
0
        private UniversityClass MapUniversityClass(string[] columns)
        {
            UniversityClass universityClass = new UniversityClass();

            universityClass.Title    = columns[1];
            universityClass.CourseId = int.Parse(columns[0]);

            return(universityClass);
        }
コード例 #4
0
        private void DisplayAllClasses(string message)
        {
            Console.Clear();
            Console.Title = "Super Duper University (Instructor - Classes)";

            Console.WriteLine("****************************************************************");
            Console.WriteLine("*Welcome to the Super - Duper University Instructor Application*");
            Console.WriteLine("****************************************************************");
            Console.WriteLine("");
            Console.WriteLine($"Welcome {InstructorName} please select an option:");
            Console.WriteLine("");

            if (!string.IsNullOrEmpty(message))
            {
                Console.WriteLine(message);
            }

            Console.WriteLine("");
            Console.WriteLine("(1) Please select class Id to view details.");
            Console.WriteLine("");

            // display columns
            Console.WriteLine("Course Id|Course Title");

            UniversityClass[] universityClasses = _universityCatalog.GetInstructorClasses(InstructorId);

            for (int index = 0; index < universityClasses.Length; index++)
            {
                UniversityClass universityClass = universityClasses[index];

                Console.WriteLine($"{universityClass.CourseId}|{universityClass.Title}");
            }

            string userOption = Console.ReadLine();

            if (!string.IsNullOrEmpty(userOption))
            {
                int classId = int.Parse(userOption);

                NextScreen.InstructorId = InstructorId;
                NextScreen.ClassId = classId;
                NextScreen.InstructorName = InstructorName;

                MoveNextScreen();

            }
            else
            {
                DisplayAllClasses("Pease select a class Id!");
            }
        }
コード例 #5
0
        internal string GetClassName(int classId)
        {
            for (int index = 0; index < _universityData.UniversityClasses.Length; index++)
            {
                UniversityClass universityClass = _universityData.UniversityClasses[index];

                if (universityClass.CourseId.Equals(classId))
                {
                    return(universityClass.Title);
                }
            }

            return("");
        }
コード例 #6
0
 public void UniversityNameLengthCheck()
 {
     Assert.Throws <Exception>(delegate {
         UniversityClass z = new UniversityClass("Universite Saint-Joseph de Beyrouth");
     });
 }
コード例 #7
0
 public void UniversityNameNullCheck()
 {
     Assert.Throws <Exception>(delegate {
         UniversityClass z = new UniversityClass(null);
     });
 }
コード例 #8
0
 public void setup()
 {
     u = new UniversityClass("AAA");
 }
コード例 #9
0
        static void Main(string[] args)
        {
            #region pure collection binding
            //ObservableCollection<int> sourceCollection =
            //    new ObservableCollection<int> { 1, 2, 3 };

            //ObservableCollection<string> targetCollection =
            //    new ObservableCollection<string>();

            //TwoWayCollectionBinding<int, string> twoWayBinding = new TwoWayCollectionBinding<int, string>
            //{
            //    SourceCollection = sourceCollection,
            //    TargetCollection = targetCollection,
            //    SourceToTargetDelegate = (i) => i.ToString(),
            //    TargetToSourceDelegate = (str) => Int32.Parse(str)
            //};

            //twoWayBinding.Bind();

            //Console.WriteLine("\nOriginal source collection");
            //sourceCollection.ForEach((i) => Console.WriteLine(i)); // print the source collection

            //Console.WriteLine("\nOriginal target collection");
            //targetCollection.ForEach((i) => Console.WriteLine(i)); // print the source collection

            //Console.WriteLine("\nAfter removing element at index 1 from source");
            //sourceCollection.RemoveAt(1); // remove element at index 1 from source collection
            //targetCollection.ForEach((str) => Console.WriteLine(str)); // print target collection

            //Console.WriteLine("\nAfter adding 4 to target");
            //targetCollection.Add("4"); // append string "4" to the end of the target collection
            //sourceCollection.ForEach((i) => Console.WriteLine(i)); // print the source collection

            //Console.WriteLine("\nAfter inserting 0 to target");
            //targetCollection.Insert(0, "0"); // insert string "0" at index 0 for the target collection
            //sourceCollection.ForEach((i) => Console.WriteLine(i)); // print the source collection

            //Console.WriteLine("\nAfter inserting 2 at index 2 to source");
            //sourceCollection.Insert(2, 2); // insert number 2 at index 2 for the source collection
            //targetCollection.ForEach((str) => Console.WriteLine(str)); // print the target collection

            #endregion pure collection binding

            #region collection value binding

            //Console.WriteLine("\nValue collection bindings");

            //TestData<int> source = new TestData<int>();

            //TestData<string> target = new TestData<string>();

            //OneWayCollectionValueBindingWithPath
            //<
            //    int,
            //    string,
            //    ObservableCollection<int>,
            //    ObservableCollection<string>
            //>
            //theBinding = new OneWayCollectionValueBindingWithPath
            //                 <
            //                    int,
            //                    string,
            //                    ObservableCollection<int>,
            //                    ObservableCollection<string>
            //                 >
            //                 {
            //                     IsOneWayCollectionBinding = false,
            //                     CreationType = typeof(ObservableCollection<string>),
            //                     SourceObj = source,
            //                     TargetObj = target,
            //                     SourceToTargetDelegate = (i) => i.ToString(),
            //                     TargetToSourceDelegate = (str) => Int32.Parse(str)
            //                 };

            //List<BindingPathLink<object>> sourcePathLinks = new List<BindingPathLink<object>>();
            //sourcePathLinks.Add(new BindingPathLink<object>("TheCollection"));
            //theBinding.SourcePathLinks = sourcePathLinks;

            //List<BindingPathLink<object>> targetPathLinks = new List<BindingPathLink<object>>();
            //targetPathLinks.Add(new BindingPathLink<object>("TheCollection"));
            //theBinding.TargetPathLinks = targetPathLinks;

            //theBinding.Bind();

            //source.TheCollection = new ObservableCollection<int>(new int[] { 1, 2, 3 });

            //target.TheCollection.ForEach((str) => Console.WriteLine(str)); // print the target collection

            //source.TheCollection.RemoveAt(1);

            //Console.WriteLine();

            //target.TheCollection.ForEach((str) => Console.WriteLine(str)); // print the target collection

            //target.TheCollection.Add("4");

            //Console.WriteLine();
            //source.TheCollection.ForEach((str) => Console.WriteLine(str)); // print the source collection
            #endregion collection value binding

            #region value binding type testing
            //TestData<Person> sourcePeople = new TestData<Person>();

            //TestData<Person> targetPeople = new TestData<Person>();
            //OneWayCollectionValueBindingWithPath peopleBinding = new OneWayCollectionValueBindingWithPath
            //{
            //    SourceObj = sourcePeople,
            //    TargetObj = targetPeople,
            //    IsOneWayCollectionBinding = false,
            //    CreationType = typeof(ObservableCollection<Person>)
            //};

            //List<BindingPathLink<object>> peopleSourcePathLinks = new List<BindingPathLink<object>>();
            //peopleSourcePathLinks.Add(new BindingPathLink<object>("TheCollection"));
            //peopleBinding.SourcePathLinks = peopleSourcePathLinks;

            //List<BindingPathLink<object>> peopleTargetPathLinks = new List<BindingPathLink<object>>();
            //peopleTargetPathLinks.Add(new BindingPathLink<object>("TheCollection"));
            //peopleBinding.TargetPathLinks = peopleTargetPathLinks;

            //peopleBinding.Bind();

            //UniversityClass universityClass = new UniversityClass();

            //sourcePeople.TheCollection = universityClass.People;
            #endregion value binding type testing

            #region Map Collection Tests

            UniversityClass theUniversityClass = new UniversityClass();
            DHierarchyItemsControl dHierarchyItemsControl = new DHierarchyItemsControl();

            OneWayCollectionValueBindingWithPath itemsSourceBinding = new OneWayCollectionValueBindingWithPath
            {
                SourceObj = dHierarchyItemsControl,
                TargetObj = dHierarchyItemsControl,
                IsOneWayCollectionBinding = true
            };

            List<BindingPathLink<object>> dataContextSourcePathLinks = new List<BindingPathLink<object>>();
            dataContextSourcePathLinks.Add(new BindingPathLink<object>("DataContext"));
            dataContextSourcePathLinks.Add(new BindingPathLink<object>("People"));
            itemsSourceBinding.SourcePathLinks = dataContextSourcePathLinks;

            List<BindingPathLink<object>> itemsSourceTargetPathLinks = new List<BindingPathLink<object>>();
            itemsSourceTargetPathLinks.Add(new BindingPathLink<object>("ItemsSource"));
            itemsSourceBinding.TargetPathLinks = itemsSourceTargetPathLinks;

            itemsSourceBinding.Bind();

            dHierarchyItemsControl.DataContext = theUniversityClass;

            #endregion Map Collection Tests

            int i = 0;
        }