public bool DeSerialize(List <Staff> StaffList)
        {
            bool flag = false;

            Type[] staffTypes = { typeof(TeachingStaff), typeof(AdministrativeStaff), typeof(SupportStaff) };

            XmlSerializer deserializer = new XmlSerializer(typeof(List <Staff>), staffTypes);

            try
            {
                using (StreamReader reader = new StreamReader(@"C:\Users\Win8.1 Pro 64bit\source\repos\Staff\Staff\XMLFile1.xml"))
                {
                    object outObject = deserializer.Deserialize(reader);

                    foreach (var staff in (dynamic)outObject)
                    {
                        string staffType = staff.StaffType.ToString();
                        switch (staffType)
                        {
                        case "Teaching":
                            TeachingStaff teachingStaff = new TeachingStaff(staff.Name, staff.EmpCode, staff.StaffType, staff.Subject, staff.ContactNumber, staff.DateOfJoin);
                            StaffList.Add(teachingStaff);
                            break;

                        case "Administrative":
                            AdministrativeStaff administrativeStaff = new AdministrativeStaff(staff.Name, staff.EmpCode, staff.StaffType, staff.Role, staff.ContactNumber, staff.DateOfJoin);
                            StaffList.Add(administrativeStaff);
                            break;

                        case "Support":
                            SupportStaff supportStaff = new SupportStaff(staff.Name, staff.EmpCode, staff.StaffType, staff.Department, staff.ContactNumber, staff.DateOfJoin);
                            StaffList.Add(supportStaff);
                            break;
                        }
                    }
                    return(flag);
                }
            }
            catch (Exception e)
            {
                return(flag);
            }
        }
        public bool DeSerialize(List <Staff> StaffList)
        {
            bool flag = false;

            try
            {
                string jsonString = File.ReadAllText(@"C:\Users\Win8.1 Pro 64bit\source\repos\Staff\Staff\Staff.json");
                object obj        = JsonConvert.DeserializeObject(jsonString);
                foreach (var staff in (dynamic)obj)
                {
                    string staffType = staff.StaffType.ToString();
                    switch (staffType)
                    {
                    case "Teaching":
                        TeachingStaff ts            = (TeachingStaff)staff.ToObject(typeof(TeachingStaff));
                        TeachingStaff teachingStaff = new TeachingStaff(ts.Name, ts.EmpCode, ts.StaffType, ts.Subject, ts.ContactNumber, ts.DateOfJoin);
                        StaffList.Add(teachingStaff);
                        break;

                    case "Administrative":
                        AdministrativeStaff adminStaff          = (AdministrativeStaff)staff.ToObject(typeof(AdministrativeStaff));
                        AdministrativeStaff administrativeStaff = new AdministrativeStaff(adminStaff.Name, adminStaff.EmpCode, adminStaff.StaffType, adminStaff.Role, adminStaff.ContactNumber, adminStaff.DateOfJoin);
                        StaffList.Add(administrativeStaff);
                        break;

                    case "Support":
                        SupportStaff ss           = (SupportStaff)staff.ToObject(typeof(SupportStaff));
                        SupportStaff supportStaff = new SupportStaff(ss.Name, ss.EmpCode, ss.StaffType, ss.Department, ss.ContactNumber, ss.DateOfJoin);
                        StaffList.Add(supportStaff);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                return(flag);
            }


            return(flag);
        }