/// <summary>
        /// /function to get course id depending on course name and search flag like session or curricula
        /// </summary>
        /// <param name="CourseName">first parameter</param>
        /// <param name="SearchFlag">curricula,session,course</param>
        /// <returns>string value</returns>
        public string GetID(string CourseName, string SearchFlag)
        {
            List <string> courseID = new List <string>();
            clsPage       oPage    = new clsPage(iWebdriver);
            string        ID       = string.Empty;

            if (SearchFlag.ToUpper() == "CURRICULA")
            {
                ID = oPage.GetCurriculumId(CourseName);
            }
            else if (SearchFlag.ToUpper() == "SESSION")
            {
                courseID = oPage.GetCourseId(CourseName);
                if (courseID.Count > 0)
                {
                    ID = courseID[0].ToString();
                }
            }
            else if (SearchFlag.ToUpper() == "COURSE")
            {
                courseID = oPage.GetCourseId(CourseName);
                if (courseID.Count > 0)
                {
                    ID = courseID[0].ToString();
                }
            }

            return(ID);
        }
Exemple #2
0
        public bool Enrolluser(Hashtable htblTestData)
        {
            clsGlobalVariable.strExceptionReport = string.Empty;
            string     statusCode = string.Empty;
            string     result     = string.Empty;
            clsGeneric oGeneric   = new clsGeneric();
            string     URI        = string.Empty;

            List <string> lCourseId = new List <string>();
            bool          _Flag     = false;
            string        _UserID   = string.Empty;

            try
            {
                clsPage oPage = new clsPage(iWebdriver);

                _orgID       = oPage.GetOrganizationID();
                clsAPI.orgID = _orgID;
                lCourseId    = oPage.GetCourseId(htblTestData["CourseName"].ToString());

                Users oUser = new Users();

                GetAPICredentials oGetAPICredentials = new GetAPICredentials();


                oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.orgCredential.Replace("$", _orgID), oUser, "H2", "", "");

                var        orgCredential = JsonConvert.DeserializeObject <GetAPICredentials>(result);
                Crypto3DES _des          = new Crypto3DES(ApplicationSettings.EComModuleEncKey());

                _ecomTransactionKey = _des.Decrypt3DES(orgCredential.TransactionKey);
                _ecomLoginKey       = _des.Decrypt3DES(orgCredential.LoginID);

                oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.user.Replace("{orgid}", _orgID), oUser, "H1", _ecomLoginKey, _ecomTransactionKey);


                var oUserData = JsonConvert.DeserializeObject <List <Users> >(result);

                for (int iUser = 0; iUser < oUserData.Count; iUser++)
                {
                    if (oUserData[iUser].Profile.F015.ToString() == htblTestData["UserEmail"].ToString().Trim())
                    {
                        _UserID = oUserData[iUser].ID;
                        break;
                    }
                }


                oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.GetSessionID.Replace("{orgid}", _orgID).Replace("{CourseID}", lCourseId[0].ToString().Trim()), oUser, "H1", _ecomLoginKey, _ecomTransactionKey);


                var oSessionData = JsonConvert.DeserializeObject <List <clsAPISession> >(result);

                if (result == "")
                {
                    return(false);
                }

                _SessionID = oSessionData[0].SessionID;

                UserEnrollment oUserEnrollment = new ILMS.UserEnrollment();
                oUserEnrollment.userid = _UserID;
                oGeneric.GetApiResponseCodeData(out statusCode, out result, "POST", ApplicationSettings.APIURI() + clsAPI.SessionEnrollment.Replace("{orgid}", _orgID).Replace("{CourseID}", lCourseId[0].ToString().Trim()).Replace("{SessionID}", _SessionID), oUserEnrollment, "H1", _ecomLoginKey, _ecomTransactionKey);

                Thread.Sleep(clsGlobalVariable.iWaitHigh);

                if (htblTestData["TestCaseType"].ToString().ToUpper() == "NEGATIVE")
                {
                    if (result.ToUpper().Contains("!DOCTYPE"))
                    {
                        clsGlobalVariable.strExceptionReport = "Resource not found";
                        return(true);
                    }

                    if (result.Contains("Invalid URI"))
                    {
                        return(true);
                    }

                    var oError = JsonConvert.DeserializeObject <List <SuperAdminCoursePushDownError> >(result);
                    SuperAdminCoursePushDownErrorCode oErrorCode = new SuperAdminCoursePushDownErrorCode();
                    foreach (string strErrorCode in oErrorCode.coursePushDownErrorCode)
                    {
                        if (strErrorCode == oError[0].ErrorCode)
                        {
                            _Flag = true;
                        }
                    }
                    if (_Flag == true)
                    {
                        return(true);
                    }
                    else
                    {
                        clsGlobalVariable.strExceptionReport = "Negative Case Failed!";
                        return(false);
                    }
                }


                do
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.SessionEnrollment.Replace("{orgid}", _orgID).Replace("{CourseID}", lCourseId[0].ToString().Trim()).Replace("{SessionID}", _SessionID), oUserEnrollment, "H1", _ecomLoginKey, _ecomTransactionKey);
                } while (result == "");



                var oCourseData = JsonConvert.DeserializeObject <List <SessionEnrollment> >(result);

                for (int iUser = 0; iUser < oCourseData.Count; iUser++)
                {
                    if (oCourseData[iUser].User.Profile_Basic.F015.ToString() == htblTestData["UserEmail"].ToString().Trim())
                    {
                        _UserID = oCourseData[iUser].User.ID;
                        _Flag   = true;
                        break;
                    }
                    else
                    {
                        _Flag = false;
                    }
                }
            }
            catch (Exception e)
            {
                clsException.ExceptionHandler(e, iWebdriver, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name);

                return(false);
            }



            return(_Flag);
        }
Exemple #3
0
        public bool GetSession(object[] oObject)
        {
            string _UserID = string.Empty;

            clsGlobalVariable.strExceptionReport = string.Empty;
            string        statusCode       = string.Empty;
            string        statusCodeUpdate = string.Empty;
            string        result           = string.Empty;
            string        resultput        = string.Empty;
            clsGeneric    oGeneric         = new clsGeneric();
            string        URI       = string.Empty;
            string        courseID  = string.Empty;
            bool          _flag     = false;
            List <string> lCourseId = new List <string>();
            string        resultnew = string.Empty;
            string        sessionId = string.Empty;

            Hashtable hTable = new Hashtable();

            hTable = oGeneric.GetTestData(oObject);

            clsPage oPage = new clsPage(iWebdriver);

            lCourseId = oPage.GetCourseId(hTable["CourseName"].ToString());
            clsGenericAPI oclsGenericAPI = new clsGenericAPI();


            _orgID       = oPage.GetOrganizationID();
            clsAPI.orgID = _orgID;
            oclsGenericAPI.GetORGCredentials(out _ecomTransactionKey, out _ecomLoginKey, _orgID);
            User oUser = new User();

            try
            {
                if (hTable["FunctionFor"].ToString().ToUpper() == "ALL")
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.GetSessionID.Replace("{orgid}", _orgID).Replace("{CourseID}", lCourseId[0].ToString().Trim()), oUser, "H1", _ecomLoginKey, _ecomTransactionKey);


                    var oSessionData = JsonConvert.DeserializeObject <List <clsAPISession> >(result);

                    if (result == "")
                    {
                        return(false);
                    }
                    if (oSessionData.Count > 0)
                    {
                        _flag = true;
                    }
                }
                else if (hTable["FunctionFor"].ToString().ToUpper() == "ROOMNAME")
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.GetSessionID.Replace("{orgid}", _orgID).Replace("{CourseID}", lCourseId[0].ToString().Trim()), oUser, "H1", _ecomLoginKey, _ecomTransactionKey);


                    var oSessionData = JsonConvert.DeserializeObject <List <clsAPISession> >(result);

                    for (int iSessionCounter = 0; iSessionCounter < oSessionData.Count; iSessionCounter++)
                    {
                        if (oSessionData[iSessionCounter].RoomName == hTable["RoomName"].ToString())
                        {
                            sessionId = oSessionData[iSessionCounter].SessionID; break;
                        }
                    }

                    if (sessionId == "")
                    {
                        return(false);
                    }

                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.GetSessionID.Replace("{orgid}", _orgID).Replace("{CourseID}", lCourseId[0].ToString().Trim()) + "/" + sessionId, oUser, "H1", _ecomLoginKey, _ecomTransactionKey);

                    var oSessionDatanew = JsonConvert.DeserializeObject <List <clsAPISession> >(result);
                    if (oSessionDatanew.Count == 1)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.GetSessionID.Replace("{orgid}", _orgID).Replace("{CourseID}", lCourseId[0].ToString().Trim()) + "?sessionstartdate=" + hTable["StartDate"] + "&sessionenddate=" + hTable["EndDate"], oUser, "H1", _ecomLoginKey, _ecomTransactionKey);

                    if (hTable["TestCaseType"].ToString().ToUpper() == "NEGATIVE")
                    {
                        if (statusCode.Contains("204") || statusCode.Contains("200"))
                        {
                            return(false);
                        }
                        else
                        {
                            return(true);
                        }
                    }
                    var oSessionData = JsonConvert.DeserializeObject <List <clsAPISession> >(result);

                    if (result == "")
                    {
                        return(false);
                    }
                    if (oSessionData.Count > 0)
                    {
                        _flag = true;
                    }
                }
            }
            catch (Exception e)
            {
                clsException.ExceptionHandler(e, iWebdriver, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name);

                return(false);
            }


            return(_flag);
        }
        public bool Enrolluser(object[] lStrValue)
        {
            clsGlobalVariable.strExceptionReport = string.Empty;
            string     statusCode   = string.Empty;
            string     result       = string.Empty;
            clsGeneric oGeneric     = new clsGeneric();
            string     URI          = string.Empty;
            Hashtable  htblTestData = new Hashtable();

            htblTestData = oGeneric.GetTestData(lStrValue);
            List <string> lCourseId = new List <string>();
            bool          _Flag     = false;
            string        _UserID   = string.Empty;

            try
            {
                clsPage oPage = new clsPage(iWebdriver);

                _orgID       = oPage.GetOrganizationID();
                clsAPI.orgID = _orgID;
                lCourseId    = oPage.GetCourseId(htblTestData["CourseName"].ToString());

                Users oUser = new Users();

                GetAPICredentials oGetAPICredentials = new GetAPICredentials();


                oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.orgCredential.Replace("$", _orgID), oUser, "H2", "", "");

                var        orgCredential = JsonConvert.DeserializeObject <GetAPICredentials>(result);
                Crypto3DES _des          = new Crypto3DES(ApplicationSettings.EComModuleEncKey());

                _ecomTransactionKey = _des.Decrypt3DES(orgCredential.TransactionKey);
                _ecomLoginKey       = _des.Decrypt3DES(orgCredential.LoginID);



                if (htblTestData["Status"].ToString().ToUpper().Contains("INACTIVE"))
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.user.Replace("{orgid}", _orgID) + "?F015=" + htblTestData["UserEmail"].ToString() + "*&userstatus=inactive", oUser, "H1", _ecomLoginKey, _ecomTransactionKey);
                }
                else if (htblTestData["Status"].ToString().ToUpper().Contains("DELETED"))
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.user.Replace("{orgid}", _orgID) + "?F015=" + htblTestData["UserEmail"].ToString() + "*&userstatus=Deleted", oUser, "H1", _ecomLoginKey, _ecomTransactionKey);
                }
                else
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.user.Replace("{orgid}", _orgID), oUser, "H1", _ecomLoginKey, _ecomTransactionKey);
                }
                var oUserData = JsonConvert.DeserializeObject <List <Users> >(result);

                for (int iUser = 0; iUser < oUserData.Count; iUser++)
                {
                    if (oUserData[iUser].Profile.F015.ToString() == htblTestData["UserEmail"].ToString().Trim())
                    {
                        _UserID = oUserData[iUser].ID;
                        break;
                    }
                }



                UserEnrollment oUserEnrollment = new ILMS.UserEnrollment();
                oUserEnrollment.userid = _UserID;
                oGeneric.GetApiResponseCodeData(out statusCode, out result, "POST", ApplicationSettings.APIURI() + clsAPI.CourseEnrollment.Replace("{orgid}", _orgID).Replace("{CourseID}", lCourseId[0].ToString().Trim()), oUserEnrollment, "H1", _ecomLoginKey, _ecomTransactionKey);

                Thread.Sleep(clsGlobalVariable.iWaitHigh);

                if (htblTestData["TestCaseType"].ToString().ToUpper() == "NEGATIVE")
                {
                    if (result.ToUpper().Contains("!DOCTYPE"))
                    {
                        clsGlobalVariable.strExceptionReport = "Resource not found";
                        return(true);
                    }


                    var oError = JsonConvert.DeserializeObject <List <SuperAdminCoursePushDownError> >(result);
                    SuperAdminCoursePushDownErrorCode oErrorCode = new SuperAdminCoursePushDownErrorCode();
                    foreach (string strErrorCode in oErrorCode.coursePushDownErrorCode)
                    {
                        if (strErrorCode == oError[0].ErrorCode)
                        {
                            _Flag = true;
                        }
                    }
                    if (_Flag == true)
                    {
                        return(true);
                    }
                    else
                    {
                        clsGlobalVariable.strExceptionReport = "Negative Case Failed!";
                        return(false);
                    }
                }


                do
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.CourseEnrollment.Replace("{orgid}", _orgID).Replace("{CourseID}", lCourseId[0].ToString().Trim()), oUserEnrollment, "H1", _ecomLoginKey, _ecomTransactionKey);
                } while (result == "");

                if (htblTestData["Status"].ToString().ToUpper() == "INACTIVE")
                {
                    do
                    {
                        oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.GetTranscript.Replace("{orgid}", _orgID).Replace("{UserID}", _UserID.ToString().Trim()), oUserEnrollment, "H1", _ecomLoginKey, _ecomTransactionKey);
                    } while (result == "");

                    var oTranscriptData = JsonConvert.DeserializeObject <List <clsAPITranscript> >(result);

                    for (int icount = 0; icount < oTranscriptData.Count; icount++)
                    {
                        if (oTranscriptData[icount].CourseName.ToString().ToUpper().Equals(htblTestData["CourseName"].ToString().ToUpper()))
                        {
                            return(true);
                        }
                    }
                    return(false);
                }


                var oCourseData = JsonConvert.DeserializeObject <List <CourseData> >(result);

                for (int iUser = 0; iUser < oCourseData.Count; iUser++)
                {
                    if (oCourseData[iUser].User.Profile_Basic.F015.ToString() == htblTestData["UserEmail"].ToString().Trim())
                    {
                        _UserID = oUserData[iUser].ID;
                        _Flag   = true;
                        break;
                    }
                    else
                    {
                        _Flag = false;
                    }
                }
                try
                {
                    if (htblTestData["Status"].ToString().ToUpper() == "Deleted".ToUpper())
                    {
                        if (_Flag == true)
                        {
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }
                catch { }

                if (_Flag == true)
                {
                    iWebdriver.Navigate().GoToUrl(oPage.SetUrl(htblTestData["url"].ToString()));

                    clsGlobalVariable.strExceptionReport = string.Empty;
                    string   tag      = ApplicationSettings.ElementByPath();
                    object[] objparam = new object[] { ApplicationSettings.EleUserName(),
                             ApplicationSettings.ElePassword(),
                             ApplicationSettings.EleLogin() };


                    System.Threading.Thread.Sleep(clsGlobalVariable.iWaitMedium);
                    if (iWebdriver.GetType().Name.Contains("InternetExplorer") && clsGlobalVariable.IEFlag == true)
                    {
                        iWebdriver.Navigate().GoToUrl("javascript:document.getElementById('overridelink').click()");
                        clsGlobalVariable.IEFlag = false;
                    }
                    try
                    {
                        System.Threading.Thread.Sleep(clsGlobalVariable.iWaitHigh);
                        iWebdriver.FindElement((By)oGeneric.InvokeMethodwith_Param(tag, new object[] { objparam[0].ToString() })).SendKeys(htblTestData["UserEmail"].ToString());
                        iWebdriver.FindElement((By)oGeneric.InvokeMethodwith_Param(tag, new object[] { objparam[1].ToString() })).SendKeys(htblTestData["Password"].ToString());
                        iWebdriver.FindElement((By)oGeneric.InvokeMethodwith_Param(tag, new object[] { objparam[2].ToString() })).Click();

                        iWebdriver.SwitchTo().DefaultContent();
                        iWebdriver.SwitchTo().Frame(clsPageObject.frmLCLeftFrame);
                        iWebdriver.SwitchTo().Frame(clsPageObject.frmLCRightFrameFinal);


                        if (iWebdriver.FindElement(By.XPath(clsPageObject.scormCourseName.Replace("$", htblTestData["CourseName"].ToString()))).Displayed)
                        {
                            return(true);
                        }
                        else
                        {
                            clsGlobalVariable.strExceptionReport = "User is not enrolled in " + htblTestData["CourseName"].ToString();
                            return(false);
                        }
                    }
                    catch (Exception ex)
                    {
                        clsGlobalVariable.strExceptionReport = "User is not enrolled in " + htblTestData["CourseName"].ToString();
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex) { }



            return(_Flag);
        }
Exemple #5
0
        public bool FetchCourseDuedateSetting(Hashtable hTable)
        {
            clsGlobalVariable.strExceptionReport = string.Empty;
            string        statusCode = string.Empty;
            string        result     = string.Empty;
            clsGeneric    oGeneric   = new clsGeneric();
            string        URI        = string.Empty;
            List <string> lCourseId  = new List <string>();
            bool          _Flag      = false;
            string        _UserID    = string.Empty;

            try
            {
                clsPage oPage = new clsPage(iWebdriver);

                _orgID       = oPage.GetOrganizationID();
                clsAPI.orgID = _orgID;

                //Getting org API credentials
                GetAPICredentials oGetAPICredentials = new GetAPICredentials();
                oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.orgCredential.Replace("$", _orgID), oGetAPICredentials, "H2", "", "");
                var        orgCredential = JsonConvert.DeserializeObject <GetAPICredentials>(result);
                Crypto3DES _des          = new Crypto3DES(ApplicationSettings.EComModuleEncKey());

                _ecomTransactionKey = _des.Decrypt3DES(orgCredential.TransactionKey);
                _ecomLoginKey       = _des.Decrypt3DES(orgCredential.LoginID);

                DefaultDueDateSetting oDefaultDueDateSetting = new DefaultDueDateSetting();

                //Getting couse id of my course
                lCourseId = oPage.GetCourseId(hTable["CourseName"].ToString());


                //Hitting API URI
                if (hTable["TestCaseType"].ToString().ToUpper() == "POSITIVE")
                {
                    //organizations/{orgID}/courses/{courseID}/duedate
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.CourseDuedateSetting.Replace("{orgid}", _orgID).Replace("{courseID}", lCourseId[0].ToString().Trim()), oDefaultDueDateSetting, "H1", _ecomLoginKey, _ecomTransactionKey);

                    //var oCoursesettingdata = JsonConvert.DeserializeObject<DefaultDueDateSetting>(result);


                    if (statusCode == "OK/200")
                    {
                        _Flag = true;
                    }
                    else
                    {
                        _Flag = false;
                    }
                }

                else if
                (hTable["TestCaseType"].ToString().ToUpper() == "NEGATIVE")
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.CourseDuedateSetting.Replace("{orgid}", _orgID).Replace("{courseID}", lCourseId[0].ToString().Trim()), oDefaultDueDateSetting, "H1", _ecomLoginKey, _ecomTransactionKey);
                    if (result.Contains("ErrorCode"))
                    {
                        _Flag = true;
                    }
                    else
                    {
                        _Flag = false;
                    }
                }
            }
            catch (Exception e)
            {
                clsException.ExceptionHandler(e, iWebdriver, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name);

                return(false);
            }

            return(_Flag);
        }
Exemple #6
0
        public bool UpdateCourseDuedateSetting(Hashtable hTable)
        {
            clsGlobalVariable.strExceptionReport = string.Empty;
            string        statusCode = string.Empty;
            string        result     = string.Empty;
            clsGeneric    oGeneric   = new clsGeneric();
            string        URI        = string.Empty;
            List <string> lCourseId  = new List <string>();
            bool          _Flag      = false;

            try
            {
                clsPage oPage = new clsPage(iWebdriver);

                _orgID       = oPage.GetOrganizationID();
                clsAPI.orgID = _orgID;

                //Getting org API credentials
                GetAPICredentials oGetAPICredentials = new GetAPICredentials();
                oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.orgCredential.Replace("$", _orgID), oGetAPICredentials, "H2", "", "");
                var        orgCredential = JsonConvert.DeserializeObject <GetAPICredentials>(result);
                Crypto3DES _des          = new Crypto3DES(ApplicationSettings.EComModuleEncKey());

                _ecomTransactionKey = _des.Decrypt3DES(orgCredential.TransactionKey);
                _ecomLoginKey       = _des.Decrypt3DES(orgCredential.LoginID);

                //Getting the couse ID
                lCourseId = oPage.GetCourseId(hTable["CourseName"].ToString());

                if (hTable["TestCaseType"].ToString().ToUpper() == "POSITIVE")
                {
                    DefaultDueDateSetting oDefaultDueDateSetting = new DefaultDueDateSetting();
                    oDefaultDueDateSetting.DefaultDueDate      = hTable["NewDuedateDefault"].ToString();
                    oDefaultDueDateSetting.DaysAfterEnrollment = hTable["NewDuedateAfterEnrollment"].ToString();

                    //Modifying old duedate
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "PUT", ApplicationSettings.APIURI() + clsAPI.CourseDuedateSetting.Replace("{orgid}", _orgID).Replace("{courseID}", lCourseId[0].ToString().Trim()), oDefaultDueDateSetting, "H1", _ecomLoginKey, _ecomTransactionKey);

                    //Getting new duedate after updating
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.CourseDuedateSetting.Replace("{orgid}", _orgID).Replace("{courseID}", lCourseId[0].ToString().Trim()), oDefaultDueDateSetting, "H1", _ecomLoginKey, _ecomTransactionKey);
                    var oCoursesettingdata = JsonConvert.DeserializeObject <DefaultDueDateSetting>(result);


                    string newDuedateAfterEnrollment = oCoursesettingdata.DaysAfterEnrollment;
                    string newDefaultDuedate         = oCoursesettingdata.DefaultDueDate;


                    if (!string.IsNullOrEmpty(newDuedateAfterEnrollment))
                    {
                        if (newDuedateAfterEnrollment.Contains(hTable["NewDuedateAfterEnrollment"].ToString()))
                        {
                            if (string.IsNullOrEmpty(newDefaultDuedate) && hTable["NewDuedateDefault"].ToString() == "null")
                            {
                                _Flag = true;
                            }
                            else
                            {
                                _Flag = false;
                            }
                        }

                        else
                        {
                            _Flag = false;
                        }
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(newDefaultDuedate))
                        {
                            if (string.IsNullOrEmpty(newDuedateAfterEnrollment) && hTable["NewDuedateAfterEnrollment"].ToString() == "null")
                            {
                                if (newDefaultDuedate.Contains(hTable["NewDuedateDefault"].ToString()))
                                {
                                    _Flag = true;
                                }

                                else
                                {
                                    _Flag = false;
                                }
                            }
                            else
                            {
                                if (string.IsNullOrEmpty(newDuedateAfterEnrollment) && hTable["NewDuedateAfterEnrollment"].ToString() == "null")
                                {
                                    if (string.IsNullOrEmpty(newDefaultDuedate) && hTable["NewDuedateDefault"].ToString() == "null")
                                    {
                                        _Flag = true;
                                    }

                                    else
                                    {
                                        _Flag = false;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            catch (Exception e)
            {
                clsException.ExceptionHandler(e, iWebdriver, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name);

                return(false);
            }
            return(_Flag);
        }
        /// <summary>
        /// update transcript function for put api request
        /// </summary>
        /// <param name="hTable">input from transcript function</param>
        /// <returns>true/false</returns>
        private bool UpdateTranscript(Hashtable hTable)
        {
            string _UserID = string.Empty;

            clsGlobalVariable.strExceptionReport = string.Empty;
            string     statusCode       = string.Empty;
            string     statusCodeUpdate = string.Empty;
            string     result           = string.Empty;
            string     resultput        = string.Empty;
            clsGeneric oGeneric         = new clsGeneric();
            string     URI      = string.Empty;
            string     courseID = string.Empty;
            bool       _flag    = false;

            try
            {
                Transcript       oTranscript       = new ILMS.Transcript();
                clsAPITranscript oclsAPITranscript = new clsAPITranscript();


                clsPage oPage = new clsPage(iWebdriver);

                _orgID       = oPage.GetOrganizationID();
                clsAPI.orgID = _orgID;


                Users oUser = new Users();

                GetAPICredentials oGetAPICredentials = new GetAPICredentials();
                ////////////////////get api credentials for organization

                oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.orgCredential.Replace("$", _orgID), oUser, "H2", "", "");

                var        orgCredential = JsonConvert.DeserializeObject <GetAPICredentials>(result);
                Crypto3DES _des          = new Crypto3DES(ApplicationSettings.EComModuleEncKey());

                _ecomTransactionKey = _des.Decrypt3DES(orgCredential.TransactionKey);
                _ecomLoginKey       = _des.Decrypt3DES(orgCredential.LoginID);


                #region get user id by there type

                if (hTable["UserStatus"].ToString().ToUpper().Contains("INACTIVE"))
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.user.Replace("{orgid}", _orgID) + "?F015=" + hTable["UserEmail"].ToString() + "*&userstatus=inactive", oUser, "H1", _ecomLoginKey, _ecomTransactionKey);
                }
                else if (hTable["UserStatus"].ToString().ToUpper().Contains("DELETED"))
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.user.Replace("{orgid}", _orgID) + "?F015=" + hTable["UserEmail"].ToString() + "*&userstatus=Deleted", oUser, "H1", _ecomLoginKey, _ecomTransactionKey);
                }
                else
                {
                    oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.user.Replace("{orgid}", _orgID), oUser, "H1", _ecomLoginKey, _ecomTransactionKey);
                }
                var oUserData = JsonConvert.DeserializeObject <List <Users> >(result);



                for (int iUser = 0; iUser < oUserData.Count; iUser++)
                {
                    if (oUserData[iUser].Profile.F015.ToString() == hTable["UserMailID"].ToString().Trim())
                    {
                        _UserID = oUserData[iUser].ID;
                        break;
                    }
                }

                #endregion

                #region course
                if (hTable["TranscriptFor"].ToString().ToUpper() == "COURSE")
                {
                    try
                    {
                        courseID = GetID(hTable["CourseName"].ToString(), hTable["TranscriptFor"].ToString());
                        ///old transcript
                        oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.GetSpecificCourseTranscript.Replace("{orgID}", clsAPI.orgID).Replace("{userID}", _UserID).Replace("{courseID}", courseID), oclsAPITranscript, "H1", _ecomLoginKey, _ecomTransactionKey);


                        oTranscript.CompletionDate              = hTable["CompletionDate"].ToString();
                        oTranscript.EnrollmentDate              = hTable["EnrollmentDate"].ToString();
                        oTranscript.Score                       = hTable["Score"].ToString();
                        oTranscript.StartDate                   = hTable["StartDate"].ToString();
                        oTranscript.Status                      = hTable["Status"].ToString();
                        oTranscript.LicenseExpirationDate       = hTable["LicenseExpirationDate"].ToString();
                        oTranscript.RequirementType             = hTable["RequirementType"].ToString();
                        oTranscript.DueDate                     = hTable["DueDate"].ToString();
                        oTranscript.CertificationExpirationDate = hTable["CertificationExpirationDate"].ToString();

                        /////update transcript
                        string resultupdate = string.Empty;
                        string resultnew    = string.Empty;
                        oGeneric.GetApiResponseCodeData(out statusCodeUpdate, out resultupdate, "PUT", ApplicationSettings.APIURI() + clsAPI.GetSpecificCourseTranscript.Replace("{orgID}", clsAPI.orgID).Replace("{userID}", _UserID).Replace("{courseID}", courseID), oclsAPITranscript, "H1", _ecomLoginKey, _ecomTransactionKey);

                        Thread.Sleep(clsGlobalVariable.iWaitHigh);
                        oGeneric.GetApiResponseCodeData(out statusCode, out resultnew, "GET", ApplicationSettings.APIURI() + clsAPI.GetSpecificCourseTranscript.Replace("{orgID}", clsAPI.orgID).Replace("{userID}", _UserID).Replace("{courseID}", courseID), oclsAPITranscript, "H1", _ecomLoginKey, _ecomTransactionKey);
                        var status    = JsonConvert.DeserializeObject <List <clsAPITranscript> >(resultnew);
                        var statusold = JsonConvert.DeserializeObject <List <clsAPITranscript> >(result);

                        _flag = VerifyTranscriptUpdate(result, resultnew, statusCodeUpdate, hTable);
                    }
                    catch (Exception e)
                    {
                        clsException.ExceptionHandler(e, iWebdriver, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name);

                        return(false);
                    }
                }
                #endregion
                #region session
                else if (hTable["TranscriptFor"].ToString().ToUpper() == "SESSION")
                {
                    List <string> lCourseId = new List <string>();
                    string        resultnew = string.Empty;
                    lCourseId = oPage.GetCourseId(hTable["CourseName"].ToString());
                    clsGenericAPI oclsGenericAPI = new clsGenericAPI();
                    oclsGenericAPI.GetORGCredentials(out _ecomTransactionKey, out _ecomLoginKey, _orgID);


                    if (lCourseId.Count > 0)
                    {
                        oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.GetSessionID.Replace("{orgid}", _orgID).Replace("{CourseID}", lCourseId[0].ToString()), oUser, "H1", _ecomLoginKey, _ecomTransactionKey);


                        var oSessionData = JsonConvert.DeserializeObject <List <clsAPISession> >(result);

                        if (result == "")
                        {
                            return(false);
                        }

                        _SessionID = oSessionData[0].SessionID;

                        oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.GetSpecificSessionTranscript.Replace("{orgID}", _orgID).Replace("{CourseID}", lCourseId[0].ToString()).Replace("{sessionID}", _SessionID).Replace("{userID}", _UserID), oUser, "H1", _ecomLoginKey, _ecomTransactionKey);


                        _flag = VerifyTranscriptUpdate(result, resultnew, statusCodeUpdate, hTable);
                    }
                    else
                    {
                        return(false);
                    }
                }
                #endregion
                #region Curricula
                else
                {
                    string resultnew = string.Empty;
                    courseID = oPage.GetCurriculumId(hTable["CourseName"].ToString());


                    try
                    {//////////////////////getting transcript
                        oTranscript.CompletionDate              = hTable["CompletionDate"].ToString();
                        oTranscript.EnrollmentDate              = hTable["EnrollmentDate"].ToString();
                        oTranscript.Score                       = hTable["Score"].ToString();
                        oTranscript.StartDate                   = hTable["StartDate"].ToString();
                        oTranscript.Status                      = hTable["Status"].ToString();
                        oTranscript.LicenseExpirationDate       = hTable["LicenseExpirationDate"].ToString();
                        oTranscript.RequirementType             = hTable["RequirementType"].ToString();
                        oTranscript.DueDate                     = hTable["DueDate"].ToString();
                        oTranscript.CertificationExpirationDate = hTable["CertificationExpirationDate"].ToString();

                        oGeneric.GetApiResponseCodeData(out statusCode, out result, "GET", ApplicationSettings.APIURI() + clsAPI.GetSpecificCurriculumTranscript.Replace("{orgID}", _orgID).Replace("{userID}", _UserID).Replace("{courseID}", courseID), oclsAPITranscript, "H1", _ecomLoginKey, _ecomTransactionKey);

                        var status = JsonConvert.DeserializeObject <List <clsAPITranscript> >(result);


                        oGeneric.GetApiResponseCodeData(out statusCodeUpdate, out resultput, "PUT", ApplicationSettings.APIURI() + clsAPI.GetSpecificCurriculumTranscript.Replace("{orgID}", _orgID).Replace("{userID}", _UserID).Replace("{courseID}", courseID), oclsAPITranscript, "H1", _ecomLoginKey, _ecomTransactionKey);
                        Thread.Sleep(clsGlobalVariable.iWaitHigh);

                        oGeneric.GetApiResponseCodeData(out statusCode, out resultnew, "GET", ApplicationSettings.APIURI() + clsAPI.GetSpecificCurriculumTranscript.Replace("{orgID}", _orgID).Replace("{userID}", _UserID).Replace("{courseID}", courseID), oclsAPITranscript, "H1", _ecomLoginKey, _ecomTransactionKey);
                        var statusold = JsonConvert.DeserializeObject <List <clsAPITranscript> >(result);


                        _flag = VerifyTranscriptUpdate(result, resultnew, statusCodeUpdate, hTable);
                    }
                    catch { clsGlobalVariable.strExceptionReport = "Get transcript scenario failed"; return(false); }
                    return(_flag);
                }
                #endregion
            }
            catch (Exception e)
            {
                clsException.ExceptionHandler(e, iWebdriver, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name);

                return(false);
            }



            return(_flag);
        }