public void Test_OrderBy()
        {
            List <Employee> emplist = new List <Employee>();
            List <Employee> empl    = new List <Employee>();

            emplist.Add(new Employee {
                EmployeeID = "1000", EmployeeName = "Anushree", EmployeeEmail = "*****@*****.**"
            });
            emplist.Add(new Employee {
                EmployeeID = "1200", EmployeeName = "Name1200", EmployeeEmail = "*****@*****.**"
            });
            emplist.Add(new Employee {
                EmployeeID = "1400", EmployeeName = "Name1400", EmployeeEmail = "*****@*****.**"
            });
            emplist.Add(new Employee {
                EmployeeID = "1500", EmployeeName = "Name1500", EmployeeEmail = "*****@*****.**"
            });
            emplist.Add(new Employee {
                EmployeeID = "1700", EmployeeName = "Anushree", EmployeeEmail = "*****@*****.**"
            });
            emplist.Add(new Employee {
                EmployeeID = "2000", EmployeeName = "Anushree", EmployeeEmail = "*****@*****.**"
            });

            //Expected result list
            empl.Add(new Employee {
                EmployeeID = "2000", EmployeeName = "Anushree", EmployeeEmail = "*****@*****.**"
            });
            empl.Add(new Employee {
                EmployeeID = "1700", EmployeeName = "Anushree", EmployeeEmail = "*****@*****.**"
            });
            empl.Add(new Employee {
                EmployeeID = "1500", EmployeeName = "Name1500", EmployeeEmail = "*****@*****.**"
            });
            empl.Add(new Employee {
                EmployeeID = "1400", EmployeeName = "Name1400", EmployeeEmail = "*****@*****.**"
            });
            empl.Add(new Employee {
                EmployeeID = "1200", EmployeeName = "Name1200", EmployeeEmail = "*****@*****.**"
            });
            empl.Add(new Employee {
                EmployeeID = "1000", EmployeeName = "Anushree", EmployeeEmail = "*****@*****.**"
            });

            //Arrange
            List <Employee> expected = empl;

            //Act
            LinqMethods     methods = new LinqMethods();
            List <Employee> actual  = methods.OrderBy(emplist);

            //Assert
            Assert.AreEqual(expected.Count, actual.Count);

            Assert.AreEqual(expected[0].EmployeeID, actual[0].EmployeeID);
            Assert.AreEqual(expected[0].EmployeeName, actual[0].EmployeeName);
            Assert.AreEqual(expected[0].EmployeeEmail, actual[0].EmployeeEmail);

            Assert.AreEqual(expected[1].EmployeeID, actual[1].EmployeeID);
            Assert.AreEqual(expected[1].EmployeeName, actual[1].EmployeeName);
            Assert.AreEqual(expected[1].EmployeeEmail, actual[1].EmployeeEmail);

            Assert.AreEqual(expected[2].EmployeeID, actual[2].EmployeeID);
            Assert.AreEqual(expected[2].EmployeeName, actual[2].EmployeeName);
            Assert.AreEqual(expected[2].EmployeeEmail, actual[2].EmployeeEmail);

            Assert.AreEqual(expected[3].EmployeeID, actual[3].EmployeeID);
            Assert.AreEqual(expected[3].EmployeeName, actual[3].EmployeeName);
            Assert.AreEqual(expected[3].EmployeeEmail, actual[3].EmployeeEmail);

            Assert.AreEqual(expected[4].EmployeeID, actual[4].EmployeeID);
            Assert.AreEqual(expected[4].EmployeeName, actual[4].EmployeeName);
            Assert.AreEqual(expected[4].EmployeeEmail, actual[4].EmployeeEmail);

            Assert.AreEqual(expected[5].EmployeeID, actual[5].EmployeeID);
            Assert.AreEqual(expected[5].EmployeeName, actual[5].EmployeeName);
            Assert.AreEqual(expected[5].EmployeeEmail, actual[5].EmployeeEmail);



            CollectionAssert.AreEqual(expected.Select(emp => emp.EmployeeID).ToList(), actual.Select(emp => emp.EmployeeID).ToList());
            CollectionAssert.AreEqual(expected.Select(emp => emp.EmployeeName).ToList(), actual.Select(emp => emp.EmployeeName).ToList());
            CollectionAssert.AreEqual(expected.Select(emp => emp.EmployeeEmail).ToList(), actual.Select(emp => emp.EmployeeEmail).ToList());
        }
        public List <Employee> GetDetail()
        {
            List <Employee> list;
            LinqMethods     methods = new LinqMethods();

            if (dropdown2.SelectedItem.ToString() == "Basic Filter")
            {
                list = methods.BasicFilter(empList);
                return(list);
            }
            else if (dropdown2.SelectedItem.ToString() == "Order by")
            {
                list = methods.OrderBy(empList);
                return(list);
            }
            else if (dropdown2.SelectedItem.ToString() == "Join")
            {
                list = methods.Join(empList);
                return(list);
            }
            else if (dropdown2.SelectedItem.ToString() == "Group by")
            {
                list = methods.GroupBy(empList);
                return(list);
            }
            else if (dropdown2.SelectedItem.ToString() == "Quantifiers")
            {
                bool result;
                result = methods.LQuantifiersAny(empList);
                lblAnyResult.Content = result;
                result = methods.LQuantifiersAll(empList);
                lblAllResult1.Content = result;
                result = methods.LQuantifiersContain(empList);
                lblContainResult.Content = result;
            }
            else if (dropdown2.SelectedItem.ToString() == "Aggregate Functions")
            {
                double result;
                result = methods.AggregateAvg(empList);
                lblAvgResult.Content = result;
                result = methods.AggregateMin(empList);
                lblMinResult.Content = result;
                result = methods.AggregateMax(empList);
                lblMaxResult.Content = result;
                result = methods.AggregateCount(empList);
                lblCountResult.Content = result;
                result = methods.AggregateSum(empList);
                lblSumResult.Content = result;
            }
            else if (dropdown2.SelectedItem.ToString() == "Element Operators")
            {
                string result;
                result = methods.ElementAt(empList);
                lblElementAtResult.Content = result;
                result = methods.First(empList);
                lblFirstResult.Content = result;
                result = methods.Last(empList);
                lblLastResult.Content = result;
            }
            else if (dropdown2.SelectedItem.ToString() == "Set Operators")
            {
                //list = methods.Distinct(empList);
                //return list;

                //list = methods.Except(empList);
                //return list;

                //list = methods.Intersect(empList);
                //return list;

                list = methods.Union(empList);
                return(list);
            }
            return(null);
        }