DevOps PBI 196345 Upgrade NuGet DLL to API for COPS
Background:
GALRO currently uses NuGet TCCOPS.dll for COPS. It needs to be updated to use an API for COPS because Moneris will stop processing payments with COPS systems that use the DLL in October.
...
There is a “hard” deadline for this work to be completed: September 20, 2022.
...
I attempted to test the existing payment process on GALRO development on Friday, August 19th, 2022
See task 196794 Baseline test of behaviour of GALRO - TCOPS in Development environment.The updated code was not yet deployed to Acceptance as of August 25, 2022 and it was not possible to pay for a Mark. The result is the same as per task 196794 Baseline test of behaviour of GALRO - TCOPS in Development environment.
Solution
Visual Studio version used
We used VS 2022.
Getting GALRO running locally:
Please refer to the instructions regarding getting GALRO running locally on the main GALRO external page under "Debug project".
As a general note, the only step that appears to be required at this time is to ensure that the template is present. Refer to the section mentioned above: "Debug project".
It was also necessary to update the SourceSystemKey token entry in web.config because the existing one contained a “+” sign.
I have made this change in the web.config that is used on localhost and this has been merged into the GALRO repos.
Removal of references to TCCOPS.dll
The reference to TCCOPS had to be removed from NuGET and we had to make sure there are no other references to it in the code.
Refer to task 198110 Remove reference to TCCOPS.dll in NuGet
...
We converted the required helper files from C# to VB.net using the Telerik code converter ( https://converter.telerik.com/ ) The TokenUtility was originally converted from c# to vb too but did not work. See the section “TokenUtility” for the link to the task covering it.
The source link, from Marine, is: https://dev.azure.com/transport-canada/DSD-Internal%20Services-Finance/_git/MVR
We used this code converter: https://converter.telerik.com/
See also task 196786: Create the required model and helper files to support the COPS API in GALRO
I also added the documentation/comments to our new GALRO Helper and Module files
see task 196787 Add the documentation/comments to the files for COPS API - GALRO
TokenUtility
The TokenUtility was created in C# since the converted vb version did not work properly.
Please refer to task 198073 TokenUtility in C# (instead of VB)
Payments
See Moneris for card numbers to test with.
I use 1234 as the expiry date.
The CVV code can be anything.
Here is a document with some information, including a couple card numbers I used when I was testing RPAS https://tcmarin.atlassian.net/wiki/spaces/FTT/pages/2491023435/TCOPs+test+info
...
When an error occurs in TCCOPS you will see an error such as “Moose”, “Eagle”, etc.
These codes are only documented within the TCCOPS repos.
TCCOPS is not a CIVIL aviation applications. For assistance resolving TCCOPS error codes, please reach out to Elad Shalom/TCCOPS team.
For contact information about the COPS see https://tcmarin.atlassian.net/wiki/spaces/CA/pages/2369847312/COPS+-+Common+Online+Payment+System7
Developer testing:
The relevant database info is found in CCARCS (a key table is authorization)
CARS/CCARCSD.World.
see task 196806 Developer testing of GALRO where I have outlined some recommendations for the testing.
UAT Testing (Acceptance):
see task 196809 UAT testing on acceptance
Publishing / Deploying
Please see the publish project section on the External GALRO page and the following tasks:
Development: 196808 Deploy to Develpment
Acceptance: 198185 Deploy to acceptance...
The web config
It was necessary to update SourceSystem Key value on localhost, dev and acceptance. I expect it will also have to be done on Acceptance. Please refer to the following tasks:
Localhost: 198139: webconfig - update the SourceSystemKey entry on local host
Development: 198142: webconfig - verify / update the SourceSystemKey entry on development - and update DateAppLastModified date
...
Background:
NORMS reports are initiated:
manually
ORby an automatic process.
Automatically generated reports are “ASIS” reports.
Problem:
The current production version of NORMS does not support editing the:
occurrence information including summary text
location
ground injuries
of the two types of ASIS reports:
Technical Advisor Report (occurrence class id = 99).
Minister’s Observer Report (occurrence class id = NULL).
Users can edit these details for a Manual report. The occurrence class id for manual reports is 99.
There are three related tasks that have overlapping requests with the following requirements:
Retain existing ability to correctly edit Manual reports such as TSB_OCCURRENCE_ID = A21F0177
Implement ability to edit occurrence, location and ground details in
ASIS Technical Advisor reports such as TSB_OCCURRENCE_ID = A22F0291
andASIS Minister Observer reports such as TSB_OCCURRENCE_ID = A16P0161
display the Time Zone, that is shown when editing the occurrence details, in Part A (Occurrence Information)
249125 All reports: display the timezone in Part A Occurrence Information tab. This is listed for the ASIS issues below. We also need to do it for the manual reports.The totals will continue to be calculated, not edited by the user.
Query to retrieve the sample manual, ASIS Technical Advisor and ASIS Minister observer reports:
Code Block |
---|
select * from AY019_TC_OCCURRENCE
where TSB_OCCURRENCE_ID in ('A21F0177', 'A22F0291', 'A16P0161') |
Task 1: 199961 Add missing Edit buttons/ implement ability to edit - MOTA reports for ASIS reports (Noreen)
Part A tab (manual and two types of ASIS reports):
enable the editing of the Occurrence information such as summary text, location details and ground injuries.
display the Time Zone, that is shown when editing the occurrence details, in the report page for Part A.
total will continue to be a calculated value.
Remaining to be done:
I implemented the ability to edit the reports Technical Advisor reports (e.g. A22F0291): occurrence, location and ground injuries and the details are returned to the Part A. The solution may require further changes due to the issues I ran into when pressing the “View Report” button for ASIS Minister Observer report A16P0161 .
The summary text that is retrieved in the Part A is not the correct text.
DSD-CIVAV Support Team Backlog items Board - Boards (azure.com)Display of the timezone in the Part A tab.
249125 All reports: display the timezone in Part A Occurrence Information tab
Task 2. 174505 Incorrect data in a MOTA report (Siamak)
Part B tab (manual and two types of ASIS reports):
enable the editing of the Fatalities/Injures section.
Total will continue to be a calculated value.
Task 3. 174542 Ability to manually populate all data fields in MOTA reports (Dean Wang)
manual and two types of ASIS reports
The screenshot provided in the screenshot of this task is a duplicate of work already completed in development.
Child tasks already created:
Below is a list of the child tasks that have been created for 199961 Add missing Edit buttons/ implement ability to edit - MOTA reports
Issues that I am aware of from latest work on NORMS and tasks where I made code changes are highlighted in yellow. You can access them via the actual task.
...
These were some of the issues I encountered and updated code when I was working to make the requested fields in the PART A tab of the ASIS Technical Advisor reports. Some of them may need to be revisited given the difficulties we have had with being able to get both types of ASIS reports to a point where they can be edited.
...
Visual Studio version used
VS 2022. Code changes have been committed/synced to the repos.
Developer testing:
Testing includes verifying that the correct summary texts are displayed for manual, ASIS Technical Advisor and ASIS Minister Observer reports:
Creation of a new manual report.
when the reports are first retrieved
When View Report is pressed and the Part A tab is active.
In edit mode.
Verify that the data that is saved to the report reflects the information entered when editing the reports.
UAT Testing (Acceptance):
To be completed by the requestor with guidance from development, if needed.
SM-GS
Draft SM-GS - not yet submitted, is C255048 (this was cancelled and never deployed after we collaborated to revert the changes that had been made).
Publishing / Deploying
The web config
Localhost: update the last modified date.
Development:
Acceptance:
Production: