Data model and functionality transformation ECP to Valghalla
Below here a table is shown with the identified changes between ECP and Valghalla, based on tasks and user stories
It is a work in progress !!
Data model is shown here: Data model
ECP vs Valghalla UI structure view: https://aarhuskommune-my.sharepoint.com/:x:/g/personal/movk_aarhus_dk/EUm4O-eqCuhNth1XIRnhEhwBGRDTjCBi5Cqe2kflA8m89g?rtime=E223oKNL20g
Another way to view the data is this page Reusable ECP components it also takes its point in the user interface.
Most Jira user stories referenced has subtasks, references to other user stories and links to Figma where mockups of the desired user interface is
Go-to the Jira user story to see them.
Transformation:
In general we should remove:
CreatedByOld
ChangedByOld
When changing / removing / adding an Entity we should also update / review:
Automapper
EntityConfiguration
Schema
Modules
Changing from MSSQL to Postgres be aware of:
Connection string is different
Where model configuration is set to be required and HasDefaultValueSql, the “((1))” value has to be changed to “TRUE”
Where model configuration has HasColumnType(datetime) it needs to either be changed to HasColumnType(timestamp) or it needs to be removed, resulting in Postgres type timestamp with time zone
Previous migrations has to be deleted and a new will have to be created.
dotnet ef migrations add InitialCreate --output-dir "C:\dev\Valghalla\Internal application\Kaskelot.Internal.Infrastructure\Migrations\Stopping the PostgresSql engine
sc stop postgresql-x64-15
Starting the PostgresSql engine (is not started)
sc start postgresql-x64-15
From all data model entities
Action | Name | Link | Data notes | Functionality notes |
---|---|---|---|---|
Remove | Materials |
|
| /administration/material |
Remove / Repurpose | Courses → Repurpose for Communication templates and the mapping between templates and task types |
| Repurpose CourseEntity | /course → /Communication |
Remove | Rooms |
| Remove RoomEntity | /building/details/ |
Remove | Constituency |
| Remove ConstituencyEntity | /administration/structure |
Remove | Parish |
| Remove ParishEntity | /administration/structure |
Remove | Sign Not needed |
| Remove SignEntity | /building/details/ |
Remove | Applications |
| FieldAlternativeEntity | Some of this functionality / components might be useful in the communication portion) |
Remove | Forms |
|
|
|
Change | Templates Not needed |
|
| /administration/templates
|
Remove | Electorial district |
| Remove ElectoralDistrictEntity | /administration/structure |
Investigate | Tag |
| PersonTagEntity | /administration/category |
Decide | Group Type → Team type |
| GroupTypeEntity | /administration/category |
New | Validation rules | New entity and table in the data model or as a fixed model (enum or json object) in the code ? Reference to a localized string per. entry |
| |
New | Election types | New entity and table in the data model. Reference to the selected validation rules | Show in administration area on same level as election. | |
New / Change | Special diet (reuse Category if it makes sense) | New entity and table in the data model | Perhaps reuse category dialog setup and category card from administration if it makes sense. | |
New | Election committee contact information | New entity and table in the data model, see fields in figma link on the individual task. | Show in administration area on same level as election. | |
Change | Disctrict → Area | Add in DistrictEntity data model
Rename DistrictEntity to AreaEntity in source code | Move from structure to administration area on same level as election. Add field for
| |
Change | Election | Add in ElectionEntity data model
Change in the entity data model
Remove in entity data model
|
Add fields for
| |
New | Election |
| Automated tasks
Bound to communications settings | |
New | Election | N/A | All election data except participants is copied to a new election call the same and suffixed with (copy) maybe we could write a stored procedure for that ? | |
New | Automated tasks / job |
| N/A | Known about the daily scheduled task / job
|
New | CPR (social security job) Automated tasks / job | Create CPRQueueEntity
Create Table CPRQueue This is not set in stone, it is a suggestion | Known about this scheduled task / job
This is not set in stone, it is a suggestion | |
New | Web (Declaration of consent) | Maybe reuse the WebConfigurationEntity if it makes sense |
| |
Change | Building->Work location | Remove binding to Election (this is global)
Remove in the BuildingEntity data model
Rename to BuildingEntity to WorkLocation in source code Remove BuildingEventLogEntity data model |
Add fields for
Remove / repurpose fields
| |
Change | Function → Task type | Remove binding to Election (this is a global configuration) Add in FunctionEntity data model
Change in entity data model
Remove from entity data model
Rename FunctionEntity to TaskTypeEntity in source code |
Add field for
Remove / repurpose fields
| |
Change | Group → Team | Remove binding to Election (this is a global configuration) Add in GroupEntity data model
Change in entity data model
Remove from entity data model
Rename from GroupEntity to TeamEntity in source code |
Add fields for
Remove / repurpose fields
| |
Change | User interface | N/A | Show election selection as a drop down in top right hand corner. | |
New | User interface | N/A | Show a breadcrumb in the solution | |
New | User interface | N/A | Use either
Help text should be localized | |
New | User Interface | Store data in WebConfiguration table | Help icon in top righthand corner | |
Change | Person → Participant | Add to the PersonEntity data model
Remove from PersonEntity data model
Rename from PersonEntity to ParticipantEntity Change in the PersonEventLogEntity data model
| /person → Add person Add field for
Add button (Lookup participant) next to the Social security number, should use a service to lookup the core participant data. Reuse eventlog interface but make it more automated, no manual entries can be put in the eventlog Remove fields
| |
Change | Person overview → Participant overview | We might need to change/adjust the view supplying this functionality | /person Show fields
Remove fields
Filter changes
| |
Change | Person details → Participant details |
| /person/details/<ID> Add communication log (reuse event log or repurpose course functionality ?) Reuse button (Lookup participant) next to the Social security number, should use a service to lookup the core participant data. Remove:
| |
New | Import participants | N/A | Should be a background task, because it could take some time ? | |
New | Export participants |