Files
2026-03-17 11:20:00 -05:00

7.9 KiB

Landmark Credit Union Collections Api

This readme outlines the developer process, basic coding style guide and provides guidance and details around the technical approach to the user interface. You should always review and update this document to encompass your changes.

Getting Started

Before you can work with the code, build it, or deploy it you must setup your development environment. The required environment is .NET Core 2.2, Git, and something to work with C#. This environment code has been wrapped up into a Powershell script that should run on any Windows 10 machine and produce a viable development environment to carry you through this guide. The script is available in the root of this directory as setup-env.ps1.

You should start by reviewing and possibly running that script if needed.

Working With The Code

Code is checked out from the Azure DevOps Repository, which is currently [https://landmarkcu.visualstudio.com/Repo/_git/LCU.API.Collections.CollectionsApi].

Work should be done in a branch from Develop. In the shared folder there is a software development process document that talks about this, you should start there. A brief introduction will be included here.

Start by checking out the repository, and specifically the develop branch. You should be branching off of develop with your own working branch. When you are complete, you will create a pull request within Azure DevOps.

Before submitting your pull request, review the following:

  • Did you commit with a commitizen style message? (see below)
  • Did you add all needed unit testing, and ensure all existing tests are passing?
  • Make sure you didn't accidentally commit and secrets or passwords.

In order to work and submit code, the project will need to be built and run; you will generally do this from Visual Studio.

Temenos Maintenance

Many fields from Temenos may require periodic maintenance due to changes in the system. Temenos is a "Low Code" or "No Code" system; which means that the business can customize their workflows, fields, and enumerations themselves. If the business adds, removes, or changes something that Collections API or Repo Manager depend on; the systems will require an update.

These fall into a couple of categories: Custom Fields, Field Lookups, and Specific fields. Regardless, when changing the models; remember to bump the version on the API LIB.

Additionally, the API account password can expire. You will start to get security errors when calling the API. Someone has to log into the LMS portals and update the password. I have started putting the month in the password for reference. Here are the portal urls:

Connecting to Temenos API

All of the imported WSDLs may need to be re-imported at some point. The list is at the bottom of this file. Upon an import of any Temenos WSDL you'll need to update the Reference.cs to load the url base from the config. If you have a better way of doing this, switch it over to that. For now you update the constructor in the reference file and add an additional configuration builder:

// Change constructor to use DI
public ConfigurationClient(ITemenosSecurityConfig config) : 
                base(ConfigurationClient.GetDefaultBinding(), ConfigurationClient.CreateEndpointAddress(config))
{
    this.Endpoint.Name = EndpointConfiguration.BasicHttpBinding_IConfiguration.ToString();
    ConfigureEndpoint(this.Endpoint, this.ClientCredentials);
}

// Add This.
private static System.ServiceModel.EndpointAddress CreateEndpointAddress(ITemenosSecurityConfig config)
{
    return new System.ServiceModel.EndpointAddress(config.GetUrl() + "/Akcelerant.AccountServicing.Service/Configuration.svc");
}

Specific Field Changes

A specific field may become a custom field, or vice versa. You'll need to find the new field and assign it correctly to the model. If it is a new field you'll need to add it. These changes will be rare.

Lookup Field Changes

These changes will be the most likely and involve adding a new value or updating an existing. These values have an ID, LABEL, and VALUE. Generally they also have to be mapped to something in Repo Manager; you'll want to double check that. For some of these, we periodically reload them - such as Users and Repo Companies. Whenever there is a change here, it will range from not affecting the application to requiring logic changes. Here are the common ones:

  • Repo Status / Case Stage - you'll need to update the app settings file to make sure you are mapping all case stages to a "repo status" correctly. Work with the business for this.
  • Users - should be refreshed automatically
  • Repo Companies - you'll need to make sure the Temenos Repo Company mapping in the app settings is correct
  • Repo Type - will rarely change, and is a small set, but you will need to update the app settings

Custom Field Changes

Since custom fields are looked up by their label; if the business changes a label or moves a custom field to a different parent object you'll need to rework the code. If the field label changes you need to simply update the matching string; otherwise you'll need to refactor the code if for example a field goes from case level to account level. You may need to work on Repo API afterwards depending on the change.

Suggestion for IDE

  • Visual Studio 2017
  • Visual Studio Code
  • IDEA Rider

Releases

Releases are handled by anyone on the team with access to Azure DevOps. Generally when a pull request is accepted to develop, that will be automatically built and deployed to QA.

To get to UAT, develop must be merged into the master branch and push. This will automatically cause the main branch to be built and the resulting release to be pushed to UAT.

To get to production, have the next phase after UAT Release approved. This will automatically cause the code to be promoted to production.

When creating releases, it's important not to forget to make a release and update the change notes as needed. There is information on creating a release below.

List of Temenos WSDLS

https://lms-test-app-lcu.temenoscloudna.com/Akcelerant.Core.Service/Configuration.svc?WSDL https://lms-test-app-lcu.temenoscloudna.com/Akcelerant.AccountServicing.Service/Person.svc?WSDL https://lms-test-app-lcu.temenoscloudna.com/Akcelerant.AccountServicing.Service/Configuration.svc?WSDL https://lms-test-app-lcu.temenoscloudna.com/Akcelerant.AccountServicing.Service/Case.svc?WSDL https://lms-test-app-lcu.temenoscloudna.com/Akcelerant.AccountServicing.Service/Ticket.svc?WSDL (Fails)

Known URLs

TEST Instance: https://lms-test-lcu.temenoscloudna.com/ TEST API: https://lms-test-app-lcu.temenoscloudna.com PROD Instance: https://lms-LCU.temenoscloudna.com/ PROD API: ???

Recent Temenos Upgrade Notes (5/19/24)

--WSDL refresh was needed for each of the existing Connected Services (TemenosAccount, TemenosCase, TemenosConfuguration, TemenosSecurity) Url for WSDL refresh: https://lms-app-lcu.temenoscloudna.com/Akcelerant.AccountServicing.Service/Case.svc?WSDL To refresh right click on Connected Services and choose Manage Connected Services. You can edit the url and choose to refresh each of these services, follow default screen prompts.

--API Target Framework was updated from netcore 2.2 to 3.1

--Updated necessary nuget packages for dependency

--Temenos Api Wrapper url and AccountSearch endpoint added to obtain the required InternalAccountIdentifier to access the GetAccountIdRequest

--Temenos Api Wrapper Url is pointing to our current production environment: https://api.lcu-internal.com/temenos-api-wrapper

Temenos Upgrade Notes (6/5/24)

--Added two new required parameters MinDate and MaxDate to the existing GetComments for Temenos Cases --Removed GetWorkflows data access request for Temonoes Cases as it appears these workflow comments are returning under GetWorkflows for Temenos Accounts