Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Asuquo Eniang
commented Dec 2, 2019
 
Dev environment for PCOCDS-Admin successfully set up after speaking with Yi about branching strategy. He said to create a feature (task) branch off of the master, and create pull requests as needed.
Problem:

...

Description:

Client failed the test, but was unable to re-take the PCOC test after waiting mandatory 24hr period with the Token provided.
The PCOC Database Support team will investigate and issue a new token ASAP.

...

Test Result Showing Incomplete even though they passed test
LINK to DevOps ticket 120043

-- 1. Find the record
select * from TM110_PCOCTO_OPERATOR
where upper(first_name_nm) like upper('%keon%') and UPPER(LAST_NAME_NM) like upper('%Nabavi%')
ORDER BY DATE_CREATED_DTE DESC;

select * from TM110_PCOCTO_OPERATOR Where OPERATOR_EMAIL_TXT='Nabavikeon@gmail.com';


-- 2. Check the latest attempt by using the values found in query 1
Select * From Lm109_Exam_Grp_Token WHERE PCOCTO_OPERATOR_CD in(2245383,2245221)
ORDER BY DATE_CREATED_DTE DESC;
-- use Exam_group_id for latest attempt

-- 3. Check if user actually passed,
SELECT COUNT(PASS_QUESTION_IND) AS QuestionsCorrect
FROM TM107_XREF_EXAM_GRP_QUESTION t
WHERE T.EXAM_GROUP_ID = '2246659' and Pass_Question_ind = 1;
--46 out of 50 is a pass

-- 4. Update the record Lm109_Exam_Grp_Token to 1
Update Lm109_Exam_Grp_Token
set result_status_type_cd = 1
where PCOCTO_OPERATOR_CD = 2245383;

-- 5. One more update required
SELECT *
FROM TM104_EXAM_GROUP_VERSIONS
WHERE EXAM_GROUP_ID IN (2246659)
ORDER BY DATE_LAST_UPDATE_DTE DESC;

--update the exam indicator to 1 if passed
update TM104_EXAM_GROUP_VERSIONS
set exam_passed_ind = 1
where EXAM_GROUP_ID = 2246659;


Problem: Second exam token showing as already used

Description:

Client failed the test, but was unable to re-take the PCOC test after waiting mandatory 24hr period with the Token provided.
The PCOC Database Support team will investigate and issue a new token ASAP.

Solution: See Mike-WIP DOS 765  https://dev dot azure.com/DSD-Marine/MSS-Portfolio/_workitems/edit/765

...

When visiting: https://wwwapps.tc.gc.ca/Saf-Sec-Sur/4/pcocds-sbdccep/to/p1000.aspx?lang=0&token=79efa39d-585a-4d12-bf95-c1c3773475a0
The following error is returned in the browser:

Server Error in '/Saf-Sec-Sur/4/pcocds-sbdccep/to' Application.

There is no row at position 0. (IndexOutOfRangeException)

Solution:

Although a more permanent fix to this solution is described in TFS 12606 (not yet released to prod), the quick fix is to create a new token for the candidates and send the test online URL back to the Course Provider so that they may pass this along to their candidate.  Further details can be found in TFS 14125.

Quick Fix:error is returned in the browser:

Server Error in '/Saf-Sec-Sur/4/pcocds-sbdccep/to' Application.

There is no row at position 0. (IndexOutOfRangeException)

Solution:

Quick Fix :

Create a new token for the candidates and send the test online URL back to the Course Provider so that they may pass this along to their candidate:

An issue that may arise with the solution, when run, would give results that weren't consistent to what we were expecting.  The application emulator project that was in repos was compiled using older files.  The data was ghosted from a previous version of the emulator aspx…. meaning eventhough you are expressly inserting data in the aspx to reflect the operator that required a new token, the run bypassed the code and stepped through the previous page version. 

The fix required unloading the bin, unloading the existing projects, reloading both including any DLLs that were needed.  Clean the solution, Rebuild the solution.  
Then proceed with the steps below.

1. Delete the old token if it exists. You can search for token using the following query:

PCOCDSP:

SELECT *

from LM109_EXAM_GRP_TOKEN

WHERE EXAM_GRP_token_id = '79efa39d585a4d12bf95c1c3773475a0';

2. Generate a new token for the user.

1. Open the latest copy of the PCOCService solution (located in the $/PCOCDS-SBDCCEP/PCOCSERVICE/ repository). Solution name is "PCOCService.sln".

2. Right-click on the CPWebSiteEmulator project and set as start-up project.

3. Make sure that the project is set to Debug and x86 to allow you to step through the token creation process as needed.

4. Under the CPWebSiteEmulator project, find the WSProduction.aspx page. Right-click and set as starting page.

5. In the btnAuthorize_Click function, set the request.UserName and request.Password values according to the Course Provider for which you're generating a token

6. Update the GetOperator function with the candidate's information (either exists in the database or must be provided by the Course Provider).

7. Run the CPWebSiteEmulator. When the web page loads up, click the "OK - Production" radio button and then click the Authorize button. Once the process is done, a URL will be generated on the web page (e.g. https://wwwapps.tc.gc.ca/Saf-Sec-Sur/4/pcocds-sbdccep/to/p1000.aspx?lang=0&token=68ee8a40-31dd-4616-a474-2995211c0f6f5).

8. Click the link to make sure that the URL is valid. Send this link back to the Course Provider.

3. Send the token to Course Provider.

ref#TFS 14125


More Permanent Fix:

DT dtOp = operatorInfoBL.GetOperatorsFromPCOCTOOperatorForTokenVerify(operatorFailedCheck);

if (dtOp != null)

{

if (dtOp?.Tables[0]?.Rows.Count > 0)

{

// Use the most current record only

DataRow currentTokenInfo = dtOp.Tables[0].Rows[0];

// D. Lafleur

// Set value from web.config for first part of exam url.

currentTokenInfo.SetField(12, ConfigurationManager.AppSettings.Get("PCOCTOUrl"));

// Make sure the status code is defined

if (Enum.IsDefined(typeof(enmResultStatusType), DBGetInt(currentTokenInfo, DBObjects.Feilds.LM109_EXAM_GRP_TOKEN.RESULT_STATUS_TYPE_CD)))

{

SeTokenAndMessages(request, retVal, currentTokenInfo, organizationId);

}

else

{

// This really shouldn't happen, but add it just in case data is missing

// Log that an invalid code exists in the database

retVal.ServiceMessages.Add(new ServiceMessageObj("Invalid Status", "There is an invalid or missing code for the current token"));

retVal.TestUrl = string.Empty;

return retVal;

}

}

else

{

// We do not have any tokens at this point so create a new one

ProcessSuccessfullAuthorization(request, retVal, organizationId);

}

}

else

{

// We do not have any tokens at this point so create a new one

ProcessSuccessfullAuthorization(request, retVal, organizationId);

}

ref#TFS 12606


Problem: Student requested to change the test language for final PCOC test

Description:
The PCOC final test token issued to the student was for French. The student requires an English Test. Course provider requested to change the token for the student to take the English test.

Solution:
Search the token in the database and change language to English. The detail fix is described below

...

Found a similar ticket in TFS 6683. Will refer to that to fix this issue,

:

Connect to PCOC (PROD) database (PCOCDSP.WORLD)

Step 1. Find the Operator

select *
from TM110_PCOCTO_OPERATOR
where upper(first_name_nm) like upper('%Claire%')
and UPPER(LAST_NAME_NM) like upper('%Leblanc%')
ORDER BY DATE_CREATED_DTE DESC;

Step 2. Find their Token
Select *
From Lm109_Exam_Grp_Token
WHERE PCOCTO_OPERATOR_CD = '1660093'
ORDER BY DATE_CREATED_DTE DESC;
Step 3. Find their Exam
SELECT *
FROM TM104_EXAM_GROUP_VERSIONS
WHERE EXAM_GROUP_ID = '1661308'
ORDER BY DATE_LAST_UPDATE_DTE DESC;
Step 4. Update their Language
update TM104_EXAM_GROUP_VERSIONS
set language_cd = 1
where EXAM_GROUP_ID = 1661308;
Now that the token's language has been updated to English, contact the Course Provider (cc PCOCDS team - DL OTT PCOC Team) to advise that token should now allow user to take the test in English.
Double check that the URL for the test is acessible via the following URL:
where

...

LANG=0 (for English), LANG=1 for French
TOKEN = exam_grp_token_id from Lm109_Exam_Grp_Token table.
If sending URL back to client, be sure to set lang and token in URL appropriately and verify that URL works before sending.