internal void EditAvailability()
        {
            // Availability time edit
            GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, By.XPath("(//i[contains(@class,'right floated outline small write icon')])[1]"), 10);
            AvailabilityTimeEdit.Click();
            AvailabilityTime.Click();
            AvailabilityTimeOpt.Click();

            //Availability Hour Edit
            GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, By.XPath("(//i[@class='right floated outline small write icon'])[2]"), 10);
            AvailabilityHoursEdit.Click();
            AvailabilityHours.Click();
            AvailabilityHoursOpt.Click();

            // Earn Target edit
            GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, By.XPath("(//i[@class='right floated outline small write icon'])[3]"), 10);
            EarnTargetEdit.Click();
            EarnTargetDropdown.Click();
            EarnTargetOpt.Click();
        }
        // Enter Profile
        internal void EnterProfile()
        {
            // Populate the data saved in Excel to Collection
            try
            {
                GlobalDefinitions.ExcelLib.PopulateInCollection(Base.ExcelPath, "Profile");
            } catch (Exception e)
            {
                Assert.Fail("Test failed to populate in collection at entering profile step", e.Message);
            }
            #region  Enter Availability Type
            try
            {
                // Click Edit icon
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//span[contains(text(),'Time')]/i", 5);
                AvailabilityTimeEdit.Click();

                // Click dropdown menu
                AvailabilityTime.Click();

                // Choose Availability parttime; fulltime
                new SelectElement(AvailabilityTime).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Availability Type"));
                //Base.test.Log(LogStatus.Info, "Enter availability type successfully");
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter availability type successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter Availability Type", ex.Message);
            }
            #endregion

            #region Enter Availability Hours
            try
            {
                // Click Edit icon
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//span[contains(text(),'30hours') or contains(text(),'As needed')]/i", 5);
                AvailabilityHoursEdit.Click();

                // Click dropdown menu
                AvailabilityHours.Click();

                // Select Hours 0-less than 30h; 1-more than 30h 2-as needed
                new SelectElement(AvailabilityHours).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Availability Hours"));
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter availability successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter Availability Hours", ex.Message);
            }
            #endregion

            #region Enter Earn Target
            try
            {
                // Click Edit icon
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//span[contains(text(),'per month')]/i", 5);
                SalaryEdit.Click();

                // Click dropdown menu
                Salary.Click();

                // Click earn 0-less than 500; 1-500~1000; 2-more than 1000
                new SelectElement(Salary).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Earn Target"));
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter earn target successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter Earn Target", ex.Message);
            }
            #endregion

            #region Enter Description
            try
            {
                // Click Edit icon
                DescriptionEdit.Click();

                // Input description in text area
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//textarea[@name='value']", 5);
                Description.Clear();
                Description.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Description"));

                // Click Save
                DescriptionSave.Click();
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter description successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to Enter Description", ex.Message);
            }
            #endregion

            #region Enter Language
            try
            {
                // Click Language tab
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//a[@data-tab='first']", 5);
                LanguageTab.Click();

                // Click Add New
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//div[@data-tab='first']//div[contains(text(),'Add New')]", 5);
                LanguageAddNewBtn.Click();

                // Enter Language
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//input[@placeholder='Add Language']", 5);
                LanguageName.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Language"));

                // Choose Language level 0-basic; 1-conversational; 2-fluent; 3-native
                LanguageDropdownBox.Click();
                new SelectElement(LanguageDropdownBox).SelectByText
                    (GlobalDefinitions.ExcelLib.ReadData(2, "Language Level")); // Need using OpenQA.Selenium.Support.UI;

                // Click Add
                LanguageAddBtn.Click();
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter language successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter/add Language", ex.Message);
            }
            #endregion

            #region Enter Skills
            try
            {
                // Click Skills tab
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//a[@data-tab='second']", 5);
                SkillTab.Click();

                // Click Add New
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//div[@data-tab='second']//div[contains(text(),'Add New')]", 5);
                SkillAddNewBtn.Click();

                // Enter Skill
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//input[@placeholder='Add Skill']", 5);
                SkillName.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Skill"));

                // Choose Skill level 0-beginer; 1-intermediate; 2-expert
                SkillDropdownBox.Click();
                new SelectElement(SkillDropdownBox).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Skill Level"));

                // Click Add
                SkillAddBtn.Click();
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter skills successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter/add Skills", ex.Message);
            }
            #endregion

            #region Enter Education
            try
            {
                // Click Education tab
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//a[@data-tab='third']", 5);
                EducationTab.Click();

                // Click Add New
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//div[@data-tab='third']//div[contains(text(),'Add New')]", 5);
                EducationAddNewBtn.Click();

                // Enter University Name
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//input[@name='instituteName']", 5);
                EducationName.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "University"));

                // Enter Degree
                EducationDegree.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Degree"));

                // Choose Country
                EducationCountryDropdownBox.Click();
                new SelectElement(EducationCountryDropdownBox).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Country"));

                // Choose  Title 0-Associate; 1-B.A; 2-BArch; 3-BFA; 4-B.Sc...
                EducationTitleDropdownBox.Click();
                new SelectElement(EducationTitleDropdownBox).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Title"));

                // Choose Year
                EducationGraduationYearDropdownBox.Click();
                new SelectElement(EducationGraduationYearDropdownBox).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Graduation Year"));

                // Click Add
                EducationAddBtn.Click();
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter education successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter/add Education", ex.Message);
            }
            #endregion

            #region Enter Certifications
            try
            {
                // Click Certifications tab
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//a[@data-tab='fourth']", 5);
                CertificationTab.Click();

                // Click Add New
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//div[@data-tab='fourth']//div[contains(text(),'Add New')]", 5);
                CertificationAddNewBtn.Click();

                // Enter Certificate name
                GlobalDefinitions.WaitForElement(GlobalDefinitions.driver, "XPath", "//input[@name='certificationName']", 5);
                CertificationName.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Certificate"));

                // Enter Issuing place
                CertificationFrom.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "CertifiedFrom"));

                // Choose Year
                CertificationYearDropdownBox.Click();
                new SelectElement(CertificationYearDropdownBox).SelectByText(GlobalDefinitions.ExcelLib.ReadData(2, "Certificate Issuing Year"));

                // Click Add
                CertificationAddBtn.Click();
                Base.test.Log(RelevantCodes.ExtentReports.LogStatus.Pass, "Enter certificate successfully");
            } catch (Exception ex)
            {
                Assert.Fail("Test failed to enter/add Certificate", ex.Message);
            }
            #endregion
        }
        internal void EditProfile()
        {
            //Global.GlobalDefinitions.wait(20000);
            //Populate the Excel Sheet
            //GlobalDefinitions.ExcelLib.PopulateInCollection(Base.ExcelPath, "Profile");


            //Click on Edit button
            AvailabilityTimeEdit.Click();
            //Select
            AvailabilityTime.Click();
            //Availability option Full Time
            AvailabilityTimeOpt.Click();
            CommonMethods.test.Log(LogStatus.Info, "Availability updated");
            Console.WriteLine("Availability updated");



            /* // Actions action = new Actions(GlobalDefinitions.driver);
             * // action.MoveToElement(AvailabilityTime).Build().Perform();
             * Thread.Sleep(1000);
             * //IList<IWebElement> AvailableTime = AvailabilityTimeOpt.FindElements(By.TagName("div"));
             * IList<IWebElement> AvailableTime = GlobalDefinitions.driver.FindElements(By.XPath("//select[@name='availabiltyType']/option"));
             * int count = AvailableTime.Count;
             * for (int i = 0; i < count; i++)
             * {
             *    if (AvailableTime[i].Text == GlobalDefinitions.ExcelLib.ReadData(2, "AvailableTime"))
             *    {
             *        AvailableTime[i].Click();
             *        CommonMethods.test.Log(LogStatus.Info, "Select the available time");
             *        Console.WriteLine(AvailableTime[i].Text);
             *        Console.WriteLine(count);
             *
             *    }
             * }*/
            Thread.Sleep(2000);
            //Availability Edit
            AvailabilityHoursEdit.Click();
            // Availability Hours option
            AvailabilityHoursDropDown.Click();
            //AvailabilityHours ASNeeded
            AvailabilityHours.Click();
            CommonMethods.test.Log(LogStatus.Info, "Hours updated");
            Console.WriteLine("Hours updated");

            //Salary
            SalaryEdit.Click();
            //Choose the option from salary dropdown
            SalaryDropdown.Click();
            //SalaryOpt-More than 1000 per month
            SalaryOpt.Click();
            CommonMethods.test.Log(LogStatus.Info, "Earn Target updated");
            Console.WriteLine("Earn Target updated");



            //---------------------------------------------------------
            //Click on Add New Language button
            AddNewLangBtn.Click();

            //Enter the Language
            //AddLangText.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Language"));

            //Choose Lang
            ChooseLang.Click();

            ChooseLangOpt.Click();

            AddLang.Click();
            CommonMethods.test.Log(LogStatus.Info, "Added Language successfully");
            Console.WriteLine("Added Language successfully");

            //-----------------------------------------------------------

            //Click on Skill Button
            SkillBtn.Click();

            //Click on Add New Skill Button
            AddNewSkillBtn.Click();

            //Enter the skill
            //AddSkillText.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Skill"));

            //Click the skill dropdown
            ChooseSkill.Click();

            ChooseSkilllevel.Click();

            AddSkill.Click();

            CommonMethods.test.Log(LogStatus.Info, "Added Skills successfully");
            Console.WriteLine("Added Skills successfully");
            //---------------------------------------------------------
            //Click on Education Tab
            EduBtn.Click();
            //Add Education
            AddNewEducation.Click();
            //Enter the University
            //EnterUniversity.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "University"));

            //Choose Country
            ChooseCountry.Click();

            //Choose Country Level
            ChooseCountryOpt.Click();

            //Choose Title
            ChooseTitle.Click();

            ChooseTitleOpt.Click();

            //Enter Degree
            //Degree.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Degree"));

            //Year of Graduation
            DegreeYear.Click();

            DegreeYearOpt.Click();
            AddEdu.Click();

            CommonMethods.test.Log(LogStatus.Info, "Added Education successfully");
            Console.WriteLine("Added Education successfully");

            //-------------------------------------------------
            //Click on Certificates Tab
            CertiBtn.Click();
            //Add new Certificate
            AddNewCerti.Click();

            //Enter Certificate Name
            //EnterCerti.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "Certificate"));

            //Enter Certified from
            //CertiFrom.SendKeys(GlobalDefinitions.ExcelLib.ReadData(2, "CertifiedFrom"));

            //Enter the Year
            CertiYear.Click();

            CertiYearOpt.Click();
            AddCerti.Click();

            CommonMethods.test.Log(LogStatus.Info, "Added Certificate successfully");
            Console.WriteLine("Added Certificate successfully");

            //-----------------------------------------------------
        }