Skip to content

Commit 61e0c37

Browse files
committed
Update to .NET 10
1 parent 027917a commit 61e0c37

23 files changed

Lines changed: 895 additions & 51 deletions

.github/workflows/dotnet.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# This workflow will build a .NET project
2+
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net
3+
4+
name: .NET
5+
6+
on:
7+
push:
8+
branches: [ "main" ]
9+
pull_request:
10+
branches: [ "main" ]
11+
12+
jobs:
13+
build:
14+
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- uses: actions/checkout@v3
19+
- name: Setup .NET
20+
uses: actions/setup-dotnet@v3
21+
with:
22+
dotnet-version: 8.0.x
23+
- name: Restore dependencies
24+
run: dotnet restore
25+
- name: Build
26+
run: dotnet build --no-restore
27+
- name: Test
28+
run: dotnet test --no-build --verbosity normal
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# This workflow will build a .NET8 Desktop project
2+
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net
3+
4+
name: .NET8 Desktop
5+
6+
on:
7+
push:
8+
branches: [ "main" ]
9+
pull_request:
10+
branches: [ "main" ]
11+
12+
jobs:
13+
build:
14+
15+
runs-on: windows-latest
16+
17+
steps:
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
with:
21+
fetch-depth: 0
22+
23+
- name: Setup .NET
24+
uses: actions/setup-dotnet@v4
25+
with:
26+
dotnet-version: 8.0.x
27+
28+
- name: Restore dependencies
29+
run: dotnet restore
30+
31+
- name: Build
32+
run: dotnet build --no-restore
33+
34+
- name: Test
35+
run: dotnet test --no-build --verbosity normal

README.md

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# ReplForms
22
[![Build status](https://ci.appveyor.com/api/projects/status/5si5rlduax254gio?svg=true)](https://ci.appveyor.com/project/diev/replforms)
3+
[![.NET8 Desktop](https://github.com/diev/ReplForms/actions/workflows/dotnet8-desktop.yml/badge.svg)](https://github.com/diev/ReplForms/actions/workflows/dotnet8-desktop.yml)
34
[![GitHub Release](https://img.shields.io/github/release/diev/ReplForms.svg)](https://github.com/diev/ReplForms/releases/latest)
45

56
Replaces every `key[;value;remark;regexp]` in a template XML file with
@@ -56,15 +57,35 @@ DataGridView inserted and validated values.
5657
В папке [Templates](Templates) есть несколько примеров.
5758

5859
- `_ED462-{YYYY-MM-DD}-1001.xml` - файл в формате УФЭБС ED462;
59-
- `_ССП_Request.xml` - файл запроса в КБКИ (см. транспортную программу
60-
<https://github.com/diev/Api5704>).
60+
- `_ССП_Request_v2.xml` - файл запроса в КБКИ (см. транспортную программу
61+
<https://github.com/diev/Api5704>);
62+
- TranZaxis
63+
- _kl Физлицо.xml
64+
- _kl Юрлицо.xml
65+
- _nr Новая карта новому клиенту.xml
66+
- _nr Новая карта старому клиенту.xml
67+
- _sh Новые 3 счета новому клиенту.xml
68+
- _sh Новые 3 счета старому клиенту.xml
69+
- _sh Новый счет новому клиенту.xml
70+
- _sh Новый счет старому клиенту.xml
71+
- _sh Смена счета старому клиенту.xml
72+
- _sms Изменение E-mail.xml
73+
- _sms Изменение SMS.xml
74+
- _sms Отключение E-mail.xml
75+
- _sms Отключение SMS.xml
76+
- _sms Подключение E-mail.xml
77+
- _sms Подключение SMS.xml
6178

6279
## Requirements / Требования
6380

6481
- .NET 8 Desktop Runtime
82+
- .NET 9 Desktop Runtime
83+
- .NET 10 Desktop Runtime
6584

6685
## Build / Построение
6786

87+
Предварительно требуется установить .NET SDK соответствующей версии.
88+
6889
Build this Project with many dlls into a Distr folder:
6990

7091
dotnet publish Project.csproj -o bin
@@ -85,3 +106,5 @@ Build this Project as a single-file app when no runtime required:
85106
Licensed under the [Apache License, Version 2.0].
86107

87108
[Apache License, Version 2.0]: LICENSE
109+
110+
[![Telegram](https://img.shields.io/badge/t.me-dievdo-blue?logo=telegram)](https://t.me/dievdo)

ReplForms/MainForm.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#region License
22
/*
3-
Copyright 2024 Dmitrii Evdokimov
3+
Copyright 2024-2025 Dmitrii Evdokimov
44
Open source software
55
66
Licensed under the Apache License, Version 2.0 (the "License");
@@ -25,10 +25,9 @@ namespace ReplForms;
2525
public partial class MainForm : Form
2626
{
2727
private bool _closing = false;
28-
29-
public string? TemplateFileName { get; set; }
30-
public string? ResultPath { get; set; }
31-
public string? ResultFileName { get; set; }
28+
private string? TemplateFileName { get; set; }
29+
private string? ResultPath { get; set; }
30+
private string? ResultFileName { get; set; }
3231
private Table Table { get; set; } = new();
3332

3433
public MainForm()
@@ -249,7 +248,7 @@ private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
249248
private void Grid_RowContextMenuStripNeeded(object sender, DataGridViewRowContextMenuStripNeededEventArgs e)
250249
{
251250
var row = Grid.Rows[e.RowIndex];
252-
var cell = row.Cells[2].Value.ToString() ?? string.Empty;
251+
var cell = row.Cells[2].Value?.ToString() ?? string.Empty;
253252

254253
if (cell.Contains('|'))
255254
{

ReplForms/ReplForms.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22

33
<PropertyGroup>
44
<OutputType>WinExe</OutputType>
5-
<TargetFramework>net8.0-windows</TargetFramework>
5+
<TargetFrameworks>net8.0-windows;net9.0-windows;net10.0-windows</TargetFrameworks>
66
<Nullable>enable</Nullable>
7-
<UseWindowsForms>true</UseWindowsForms>
7+
<UseWindowsForms>True</UseWindowsForms>
88
<ImplicitUsings>enable</ImplicitUsings>
99
<Authors>Diev</Authors>
10-
<Version>8.2024.626</Version>
10+
<Version>10.2026.122</Version>
1111
<Description>Replaces every `key[:value:remark:regexp]' in a template XML file with DataGridView inserted and validated values.</Description>
12-
<Copyright>Copyright 2024 Dmitrii Evdokimov</Copyright>
12+
<Copyright>Copyright 2024-2026 Dmitrii Evdokimov</Copyright>
1313
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
1414
<Company>diev</Company>
15-
<Title>PeplForms</Title>
15+
<Title>ReplForms</Title>
1616
</PropertyGroup>
1717

1818
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?xml version="1.0"?>
2+
<tran:Rtp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:com="http://schemas.tranzaxis.com/common-types.xsd" xmlns:sub="http://schemas.tranzaxis.com/subjects-admin.xsd" xmlns:tran="http://schemas.tranzaxis.com/tran.xsd" xmlns:tran1="http://schemas.tranzaxis.com/tran-common.xsd">
3+
<tran:Tran>
4+
<tran:Request ProcessorInstName="CIB-Local" Kind="ModifySubject" LifePhase="Single">
5+
<tran:Specific>
6+
<tran:Admin ObjectMustExist="`Старый клиент;true/false;true - изменение|false - создание;(true|false)'">
7+
<tran:Subject>
8+
<sub:Person TypeRid="CardholderCIB">
9+
<sub:Rid>CIB`Идентификатор клиента;;ИД субъекта;\d{5}'</sub:Rid>
10+
<sub:UserAttrs>
11+
<com:ParamValue Rid="Job">
12+
<com:Val/>
13+
</com:ParamValue>
14+
<com:ParamValue Rid="StartBank">
15+
<com:Val/>
16+
</com:ParamValue>
17+
</sub:UserAttrs>
18+
<sub:SubjectDocuments>
19+
<sub:Document TypeRid="INN" Rid="`ИНН;;12 цифр;\d{12}'"/>
20+
<sub:Document TypeRid="PASSPORT" Rid="`Номер паспорта;;6 цифр;\d{6}'">
21+
<sub:Series>`Серия паспорта;;4 цифры;\d{4}'</sub:Series>
22+
<sub:Issuer>`Кем выдан;;;.+'</sub:Issuer>
23+
<sub:IssueDate>`Когда выдан;;YYYY-MM-DD;(19|20)\d{2}-[01]\d-[0123]\d'T00:00:00</sub:IssueDate>
24+
</sub:Document>
25+
</sub:SubjectDocuments>
26+
<sub:LastName>`Фамилия;;обязательно;\D+'</sub:LastName>
27+
<sub:FirstName>`Имя;;обязательно;\D+'</sub:FirstName>
28+
<sub:MiddleName>`Отчество;;если есть'</sub:MiddleName>
29+
<sub:Gender>`Пол;M/F;M - муж|F - жен;[MF]'</sub:Gender>
30+
<sub:BirthDate>`Дата рождения;;YYYY-MM-DD;(19|20)\d{2}-[01]\d-[0123]\d'T00:00:00</sub:BirthDate>
31+
<sub:ResidenceCountryId>`Гражданство;643;643 - Россия;\d{3}'</sub:ResidenceCountryId>
32+
<sub:RegAddress Flat="`Рег.Квартира'" Building="`Рег.Корпус'" House="`Рег.Дом'" StreetTitle="`Рег.Улица'" CityTitle="`Рег.Город;Санкт-Петербург;'" CountryId="`Рег.Страна;643;643 - Россия;\d{3}'" Zip="`Рег.Индекс;190000;;\d{6}'"/>
33+
<sub:HomeAddress Flat="`Прж.Квартира'" Building="`Прж.Корпус'" House="`Прж.Дом'" StreetTitle="`Прж.Улица'" CityTitle="`Прж.Город;Санкт-Петербург;'" CountryId="`Прж.Страна;643;643 - Россия;\d{3}'" Zip="`Прж.Индекс;190000;;\d{6}'"/>
34+
<sub:HomeAddress2/>
35+
</sub:Person>
36+
</tran:Subject>
37+
</tran:Admin>
38+
</tran:Specific>
39+
</tran:Request>
40+
</tran:Tran>
41+
</tran:Rtp>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0"?>
2+
<tran:Rtp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:com="http://schemas.tranzaxis.com/common-types.xsd" xmlns:sub="http://schemas.tranzaxis.com/subjects-admin.xsd" xmlns:tran="http://schemas.tranzaxis.com/tran.xsd" xmlns:tran1="http://schemas.tranzaxis.com/tran-common.xsd">
3+
<tran:Tran>
4+
<tran:Request ProcessorInstName="CIB-Local" Kind="ModifySubject" LifePhase="Single">
5+
<tran:Specific>
6+
<tran:Admin ObjectMustExist="`Старый клиент;true/false;true - изменение|false - создание;(true|false)'">
7+
<tran:Subject>
8+
<sub:Corporation TypeRid="CorpCustomerCIB">
9+
<sub:Rid>CIB`Идентификатор клиента;;ИД субъекта;\d{5}'</sub:Rid>
10+
<sub:SubjectDocuments>
11+
<sub:Document TypeRid="INN" Rid="`ИНН;;10 цифр;\d{10}'"/>
12+
</sub:SubjectDocuments>
13+
<sub:Title>`Наименование краткое;обязательно'</sub:Title>
14+
<sub:LegalTitle>`Наименование полное;обязательно'</sub:LegalTitle>
15+
<sub:LatTitle/>
16+
<sub:ShortTitle>`Наименование сокращенное'</sub:ShortTitle>
17+
<sub:Address Building="`Факт.Корпус'" House="`Факт.Дом'" StreetTitle="`Факт.Улица'" CityTitle="`Факт.Город;Санкт-Петербург;'" CountryId="`Факт.Страна;643;643 - Россия;\d{3}'"/>
18+
<sub:LegalAddress Building="`Юр.Корпус'" House="`Юр.Дом'" StreetTitle="`Юр.Улица'" CityTitle="`Юр.Город;Санкт-Петербург;'" CountryId="`Юр.Страна;643;643 - Россия;\d{3}'"/>
19+
</sub:Corporation>
20+
</tran:Subject>
21+
</tran:Admin>
22+
</tran:Specific>
23+
</tran:Request>
24+
</tran:Tran>
25+
</tran:Rtp>
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
<?xml version="1.0"?>
2+
<tran:Rtp xmlns:card="http://schemas.tranzaxis.com/tokens-admin.xsd" xmlns:com="http://schemas.tranzaxis.com/common-types.xsd" xmlns:sub="http://schemas.tranzaxis.com/subjects-admin.xsd" xmlns:tran="http://schemas.tranzaxis.com/tran.xsd" xmlns:tran1="http://schemas.tranzaxis.com/tran-common.xsd">
3+
<tran:Tran>
4+
<tran:Request ProcessorInstName="CIB-Local" Kind="Group" LifePhase="Single">
5+
<tran:Specific>
6+
<tran:Group>
7+
<tran:Tran>
8+
<tran:Request ProcessorInstName="CIB-Local" Kind="ModifySubject" LifePhase="Single">
9+
<tran:Specific>
10+
<tran:Admin>
11+
<tran:Subject>
12+
<sub:Person TypeRid="CardholderCIB">
13+
<sub:Rid>CIB`Идентификатор клиента;;ИД субъекта;\d{5}'</sub:Rid>
14+
<sub:UserAttrs>
15+
<com:ParamValue Rid="TabNom">
16+
<com:Val/>
17+
</com:ParamValue>
18+
<com:ParamValue Rid="Job">
19+
<com:Val/>
20+
</com:ParamValue>
21+
<com:ParamValue Rid="StartJob">
22+
<com:Val/>
23+
</com:ParamValue>
24+
<com:ParamValue Rid="StartBank">
25+
<com:Val/>
26+
</com:ParamValue>
27+
<com:ParamValue Rid="JobLat">
28+
<com:Val/>
29+
</com:ParamValue>
30+
<com:ParamValue Rid="PB">
31+
<com:Val>1</com:Val>
32+
</com:ParamValue>
33+
</sub:UserAttrs>
34+
<sub:SubjectDocuments>
35+
<sub:Document TypeRid="INN" Rid="`ИНН;;12 цифр;\d{12}'"/>
36+
<sub:Document TypeRid="PASSPORT" Rid="`Номер паспорта;;6 цифр;\d{6}'">
37+
<sub:Series>`Серия паспорта;;4 цифры;\d{4}'</sub:Series>
38+
<sub:Issuer>`Кем выдан;;;.+'</sub:Issuer>
39+
<sub:IssueDate>`Когда выдан;;YYYY-MM-DD;(19|20)\d{2}-[01]\d-[0123]\d'T00:00:00</sub:IssueDate>
40+
</sub:Document>
41+
</sub:SubjectDocuments>
42+
<sub:AuthQAs/>
43+
<sub:LastName>`Фамилия;;обязательно;\D+'</sub:LastName>
44+
<sub:LastNameLat>`Фамилия лат.;;ОБЯЗАТЕЛЬНО;[A-Z\s-]+'</sub:LastNameLat>
45+
<sub:FirstName>`Имя;;обязательно;\D+'</sub:FirstName>
46+
<sub:FirstNameLat>`Имя лат.;;ОБЯЗАТЕЛЬНО;[A-Z\s-]+'</sub:FirstNameLat>
47+
<sub:MiddleName>`Отчество;;если есть'</sub:MiddleName>
48+
<sub:Gender>`Пол;M/F;M - муж|F - жен;[MF]'</sub:Gender>
49+
<sub:BirthDate>`Дата рождения;;YYYY-MM-DD;(19|20)\d{2}-[01]\d-[0123]\d'T00:00:00</sub:BirthDate>
50+
<sub:BirthPlace/>
51+
<sub:BirthName/>
52+
<sub:EducationTypeRid/>
53+
<sub:ResidenceCountryId>`Гражданство;643;643 - Россия;\d{3}'</sub:ResidenceCountryId>
54+
<sub:RegAddress Flat="`Рег.Квартира'" Building="`Рег.Корпус'" House="`Рег.Дом'" StreetTitle="`Рег.Улица'" CityTitle="`Рег.Город;Санкт-Петербург;'" CountryId="`Рег.Страна;643;643 - Россия;\d{3}'" Zip="`Рег.Индекс;190000;;\d{6}'"/>
55+
<sub:HomeAddress Flat="`Прж.Квартира'" Building="`Прж.Корпус'" House="`Прж.Дом'" StreetTitle="`Прж.Улица'" CityTitle="`Прж.Город;Санкт-Петербург;'" CountryId="`Прж.Страна;643;643 - Россия;\d{3}'" Zip="`Прж.Индекс;190000;;\d{6}'"/>
56+
<sub:HomeAddress2/>
57+
<sub:Emails/>
58+
<sub:MobilePhones>
59+
<sub:MobilePhone>`Мобильный телефон;;одни цифры;\d*'</sub:MobilePhone>
60+
</sub:MobilePhones>
61+
<sub:WorkPhones/>
62+
</sub:Person>
63+
</tran:Subject>
64+
</tran:Admin>
65+
</tran:Specific>
66+
</tran:Request>
67+
</tran:Tran>
68+
<tran:Tran>
69+
<tran:Request ProcessorInstName="CIB-Local" Kind="ModifyToken" LifePhase="Single">
70+
<tran:Specific>
71+
<tran:Admin>
72+
<tran:Token>
73+
<card:Card>
74+
<card:ContractRid>CIBCD`Идентификатор новой карты;;ИД карты;\d{4}'</card:ContractRid>
75+
<card:CreateContractTypeRid>VISA`Тип карты;CL/G/PL;CL - Classic|G - Gold|PL - Platinum;(CL|G|PL)'_1</card:CreateContractTypeRid>
76+
<card:CreateContractClientRid>CIB`Идентификатор клиента;;ИД субъекта;\d{4}'</card:CreateContractClientRid>
77+
<card:CreateContractOutLinks>
78+
<card:Link Kind="Access" Contract2Rid="`Номер счета;40817810100000000001;счет;\d{20}'"/>
79+
</card:CreateContractOutLinks>
80+
<card:ProductRid>4036`Префикс карты;79/80/81;79 - Classic|80 - Gold|81 - Platinum;(79|80|81)'021</card:ProductRid>
81+
<card:CurBranchName>0800</card:CurBranchName>
82+
<card:DeliveryBranchCode>0800</card:DeliveryBranchCode>
83+
<card:Status>New</card:Status>
84+
<card:ExtRid>`Идентификатор прежней карты;CIBCD;если была;(|CIBCD\d{4})'</card:ExtRid>
85+
<card:DesignRid/>
86+
</card:Card>
87+
</tran:Token>
88+
</tran:Admin>
89+
</tran:Specific>
90+
</tran:Request>
91+
</tran:Tran>
92+
</tran:Group>
93+
</tran:Specific>
94+
</tran:Request>
95+
</tran:Tran>
96+
</tran:Rtp>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?xml version="1.0"?>
2+
<tran:Rtp xmlns:card="http://schemas.tranzaxis.com/tokens-admin.xsd" xmlns:com="http://schemas.tranzaxis.com/common-types.xsd" xmlns:sub="http://schemas.tranzaxis.com/subjects-admin.xsd" xmlns:tran="http://schemas.tranzaxis.com/tran.xsd" xmlns:tran1="http://schemas.tranzaxis.com/tran-common.xsd">
3+
<tran:Tran>
4+
<tran:Request ProcessorInstName="CIB-Local" Kind="ModifyToken" LifePhase="Single">
5+
<tran:Specific>
6+
<tran:Admin>
7+
<tran:Token>
8+
<card:Card>
9+
<card:ContractRid>CIBCD`Идентификатор новой карты;;ИД карты;\d{4}'</card:ContractRid>
10+
<card:CreateContractTypeRid>VISA`Тип карты;CL/G/PL;CL - Classic|G - Gold|PL - Platinum;(CL|G|PL)'_1</card:CreateContractTypeRid>
11+
<card:CreateContractClientRid>CIB`Идентификатор клиента;;ИД субъекта;\d{5}'</card:CreateContractClientRid>
12+
<card:CreateContractOutLinks>
13+
<card:Link Kind="Access" Contract2Rid="`Номер счета;40817810100000000001;счет;\d{20}'"/>
14+
</card:CreateContractOutLinks>
15+
<card:ProductRid>4036`Префикс карты;79/80/81;79 - Classic|80 - Gold|81 - Platinum;(79|80|81)'021</card:ProductRid>
16+
<card:CurBranchName>0800</card:CurBranchName>
17+
<card:DeliveryBranchCode>0800</card:DeliveryBranchCode>
18+
<card:Status>New</card:Status>
19+
<card:ExtRid>`Идентификатор прежней карты;CIBCD;если была;(|CIBCD\d{4})'</card:ExtRid>
20+
<card:DesignRid/>
21+
</card:Card>
22+
</tran:Token>
23+
</tran:Admin>
24+
</tran:Specific>
25+
</tran:Request>
26+
</tran:Tran>
27+
</tran:Rtp>

0 commit comments

Comments
 (0)