Versions Compared

Key

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

System Profile

System Full Name

Radio Inspection Database Management

System 

System 

Business Contact

Julie K. Leclerc (Julie.Leclerc@dfo-mpo.gc.ca)

Business Owner

Alexandre Lavoie

Prod Source Location


Dev Source Location

Marine Safety/RIDMS/DEVELOPMENT/v5.0.4

https://dev.azure.com/transport-canada/DSD-MARINE Support/_git/RIDMS

Technology Assessment

Database Platform and Version

Oracle

12c

18c

Development Language and Framework

C# .NET Framework 4.0
ASP .NET Framework 4.0
Entity Framework
MVC
Crystal Reports

Operating System and Version

Windows Server 2016

Environment Access Information

DEV

User (admin):

Pass:

Unc: Url OLD: http://msswwwappstest/\\WWWAPPSMSSDEV\wwwappsroot\saf-sec-sur/\4/\ridms-sgdir

URL NEWUrlhttphttps://ncrws535:41000wwwappsmssdev.tc.gc.ca/saf-sec-sur/4/ridms-sgdir/

ACC

User (admin):

Pass:

Unc: \\tctestmaster\wwwappsroot\Saf-Sec-Sur\4\RIDMS-SGDIR

Url old:  https://wwwappstest.tc.gc.ca/Saf-Sec-Sur/4/RIDMS-SGDIRURL New:  /

KANGA

User (admin):

Pass:

Unc: \\NCRWS518\wwwappstestextroot\Saf-Sec-Sur\4\ridms-sgdir\

Url: https://wwwappstestxwwwappstestext.tc.gc.ca/Saf-Sec-Sur/4/RIDMS-SGDIRridms-sgdir/eng/security/login

PROD

User (admin):  See credentials doc.

Pass:

Unc: \\tcwwwmaster\wwwappsroot\Saf-Sec-Sur\4\RIDMS-SGDIR

Url:  httphttps://wwwapps.tc.gc.ca/Saf-Sec-Sur/4/RIDMS-SGDIR/eng/Security/login

PROD(2018 Server)

UNC:\\tcwwwmasterx\wwwappsroot\Saf-Sec-Sur\4\RIDMS-SGDIR

Url:  https://wwwappsx.tc.gc.ca/Saf-Sec-Sur/4/RIDMS-SGDIR/eng/Vessel/search


System Overview

<…either point to some document or put some info / diagram here>

...

To run the application locally, make sure you have StreamTagFilter, CLFPagePagePlugin installed on your machine. If you have not done so, you can find the installation files on Confluence when you search for the keyword “StreamTagFilter” ,” CLFPagePagePlugin”CLFPagePlugin”.
*Please check out this link to ensure you have the necessary files for CLFPagePlugin: /wiki/spaces/TT/pages/2600042572

To get other related components correctly installed you also need to set your Visual Studio’s Nuget package manager source locations correctly.

Refer to the following images for setting up your package manager.Image Removed

...

Include those package source URLs shown below:Image Removed

...

After cloning the application on to your local folder, open the solution file Ridms.sln

There are multiple projects inside the same solution, by default, Ridms.Web project should have been set as a Start up project, this project shows up in bold (Ridms.Web). When build succeeds, you may run the application with your choice of your web browser.Note: This project could only be run correctly in Visual Studio 2013.

...

Add the following to the Web.config file:

<add name="StreamTagFilter-4.0" type="Utility.IIS.StreamTagFilterModule, StreamTagFilter.NET.4.0, Version=1.0.6.2, Culture=neutral, PublicKeyToken=d3d707ec692e4024" />

...

If StreamTagFilter, CLFPagePagePlugin are not installed or if it is run in other version of Visual Studio you may not get the correctly rendered web pages. When the project runs correctly, you will see the pages like the following:

Image Removed

...

At this point you may use your application credentials to log into the application.

...

How-To and Fixes

Known issues:

  1. When attempting to print an inspection report for a vessel, sometimes application crashes. Now we know what causes this problem. This requires some code changes which is not minor. This issue will be fixed when this task is prioritized.

  2. When trying to run from local desktop, application failed to run, we had to clean up some old application strings which were not valid, also, we had to re-generate entity model from database. make sure Web.config and App.config have the same connection strings.

Problem 1: User permissions are not sufficient to enable record edits.

The checkmark (edit icon) is missing.

...

Code Block
--IDENTIFY THE USER IN QUESTION
select * from sirs_user_privilege where USER_ID = 10000;
--TAKE NOTE OF THE CURRENT PERMISSION LEVEL, AND COMPARE AGAINST THE SIRS_ROLE_PRIVILEDGE TABLES DATA
--BUMP UP THE USERS PERMSISSIONS UNTIL YOU SEE THE EDIT BUTTON APPEAR (WHEN LOGGED IN AS THE USER)

--IN THIS CASE THE DEVELOPERS TEST ACCOUNT WAS BEING USED TO BEBUG THE ISSUE IN PROBLEM #2, SO IT WAS BOUNCED UP TO "ADM" LEVEL. (A LESSER LEVEL MAY BE ENOUGH TO ALLOW EDITING HOWEVER)
update sirs_user_privilege set user_privilege = 'ADM' where USER_ID = 10000 and user_privilege = 'INS'; --INS is what it was at the time, and ADM is what it was elevated to.

*The record will also need to be in an “Open” status..

Code Block
--CHECK
select * from RIDMS_INSPECTION where vessel_id = 2497 and inspection_status = 'O' order by insp_date DESC;
--SET
update RIDMS_INSPECTION set inspection_status = 'O' where inspection_id = 128481 and vessel_id = 2497;

Problem 2: Failure to remove the default "{expiry?}" from the Radio Operator name causes the application to crash when attempting to edit the record.

Looks like the allowed format for text and symbols has been changed for Radio Operator. All GOC expiry every 5 years and all ROC-M prior Jan 2005 have expired. Since there is no special box allotted for dates we have been told for many years now to record the dates beside name as { expiry DDMMYY}. When I entered expiry here the filed error and now is locked out from opening. Please repair and notify when complete.”

*You will need to have account “edit permissions” to reproduce the error. If you don’t see the edit icon (as per Problem #1, then enable the fix there.

...

The record was saved as "RICHARD TREMBLAY {expiry?}" in the RD_OP1 data field, within the RIDMS_INSPECTION data table.

When later attempting to open the record for editing, the "injection" crashes RIDMS:

Server Error in '/Saf-Sec-Sur/4/RIDMS-SGDIR' Application.
Input string was not in a correct format…@Html.TextBoxFor(model => model.InspectionEditInfoViewModel.OperatorName1, Model.InspectionEditInfoViewModel.OperatorName1)
Source Error:
Source File: e:\Data\wwwappsroot\Saf-Sec-Sur\4\RIDMS-SGDIR\Views\Inspection\Edit\_RadioOperator.cshtml    Line: 15

The Fix (update the string with the injection removed):

Code Block
update RIDMS_INSPECTION set RD_OP1 = 'RICHARD TREMBLAY' where INSPECTION_ID = 128481;

Problem 3: How to make Agent Status Inactive

 

...

Image Added

Problem 4: Update Vessel Name (info) in the RIDMS database

Client was requesting that the vessel name be modified/updated

Find the vessel, change current vessel name.

select * from RIDMS_VESSEL where ship_no = '169953';
--Official Number also known as SHIP_NO: 169953
--Former Name: LAC MANITOBA
--New Name: BURCH NASH
update RIDMS_VESSEL
set current_vessel_name = 'BURCH NASH'
where ship_no = '169953';

How to Publish and Host RIDMS-WCAG

Problem 5: Duplicate or even triplicate records are being created unexpectedly in RIDMS

This problem could be caused by clicking the save button multiple times once submission.

Solution: disabling the save button after the 1st click.

Code Block

     <script>

         function disableButton(obj) {
             obj.style.display = "none";             
             var fakebutton = document.getElementById("fakebutton");
             fakebutton.style.display = "";
         }
     </script>
    <div class="align-center span-6">
        <input type="submit" name="SaveNew" value="@RidmsResource.Button_Save" title="@RidmsResource.Button_Save" id="saveButton" onclick="disableButton(this)"/>
        <input type="submit" id="fakebutton" value="Saving" disabled style="display:none;" onclick="event.preventDefault(); " />
        
    </div>

For users, please try not to do multiple clicking during saving before this kind of protection.

Problem 6: Once added MaxLength or MinLength DataAnnotation in Model define, if there is @Html.ValidationMessageFor in view, it will pop up null value error.

The problem could be fix by in the DataAnnotation part, announcing the Error massage like:

[MinLength(4, ErrorMessage = "The username must be at least 4 characters long.")]

Problem 7: result = _context.RIDMS_TABLE_RUNITS.Where(x => x.REPORTING_UNIT_ID == id && x.ACTIVE_FLAG == "A").Select(x => x.REPORTING_UNIT_DESC_E).Single(); returns "System.InvalidOperationException: 'Sequence contains no elements'"

The exception "System.InvalidOperationException: 'Sequence contains no elements'" is thrown when you try to call the Single() method on a sequence that contains no elements. In your case, the LINQ query you provided is attempting to retrieve a single element based on certain conditions, but it seems there are no elements in the result.

Solution:Use FirstOrDefault with Null Check: Consider using FirstOrDefault instead of Single. This way, if there are no matching elements, the result will be null, and you can check for it before trying to access its properties.

result = _context.RIDMS_TABLE_RUNITS
.Where(x => x.REPORTING_UNIT_ID == id && x.ACTIVE_FLAG == "A")
.Select(x => x.REPORTING_UNIT_DESC_E)
.FirstOrDefault();

if (result != null)
{
// Your logic when a result is found
}
else
{
// Handle the case when no matching element is found
}