Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Marat Pavlov
/
AlexAdapter
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
a6167d6f
authored
Mar 31, 2022
by
AlexNasyr
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
person naming update realized
parent
1dfc487a
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
63 additions
and
80 deletions
SocialMinistryDataExchange/Controllers/apiController.cs
SocialMinistryDataExchange/Model/Contingent/Center/Contingent_center_Context.cs
SocialMinistryDataExchange/Model/IContingentContext.cs
SocialMinistryDataExchange/Model/SMRepository.cs
SocialMinistryDataExchange/Controllers/apiController.cs
View file @
a6167d6f
...
...
@@ -43,7 +43,7 @@ namespace SocialMinistryDataExchange.Controllers {
PersonName
=
"Василий"
,
PersonSurname
=
"Алибабаевич"
,
PersonBirthday
=
DateTime
.
Parse
(
"2015-01-01"
),
PersonSnils
=
"12345678"
,
PersonSnils
=
"12345678
901
"
,
Territory
=
"Пермский ГО (г. Пермь)"
,
},
PersonOccupation
=
new
SMPersonOccupationStatus
()
...
...
SocialMinistryDataExchange/Model/Contingent/Center/Contingent_center_Context.cs
View file @
a6167d6f
using
Microsoft.EntityFrameworkCore
;
using
System
;
using
Microsoft.EntityFrameworkCore
;
using
Microsoft.EntityFrameworkCore.Metadata
;
#
nullable
disable
namespace
SocialMinistryDataExchange.Model.Contingent.Center
{
public
partial
class
Contingent_center_Context
:
DbContext
,
IContingentContext
{
public
Contingent_center_Context
()
{
}
public
Contingent_center_Context
(
DbContextOptions
<
Contingent_center_Context
>
options
)
:
base
(
options
)
{
...
...
SocialMinistryDataExchange/Model/IContingentContext.cs
View file @
a6167d6f
...
...
@@ -20,6 +20,7 @@ namespace SocialMinistryDataExchange.Model {
DbSet
<
ТипОбразовательнойПрограммы
>
ТипОбразовательнойПрограммы
s
{
get
;
set
;
}
DbSet
<
ФормаОбучения
>
ФормаОбучения
s
{
get
;
set
;
}
DbSet
<
ТипОбразовательнойОрганизации
>
ТипОбразовательнойОрганизации
s
{
get
;
set
;
}
DbSet
<
ПодразделениеОбразовательнойОрганизации
>
ПодразделениеОбразовательнойОрганизации
s
{
get
;
set
;
}
}
}
SocialMinistryDataExchange/Model/SMRepository.cs
View file @
a6167d6f
...
...
@@ -90,73 +90,47 @@ namespace SocialMinistryDataExchange.Model {
private
void
TryFillPersonStatus
(
SMPersonDataOccupationMessage
Person
,
string
Priority
)
{
try
{
var
person_record
=
(
from
pd
in
_contingentContext
.
ДокументЛичности
s
where
pd
.
СерияДокумента
.
Contains
(
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
)
&&
pd
.
НомерДокумента
.
Contains
(
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
)
&&
pd
.
Личность
Navigation
.
Фамилия
.
Contains
(
Person
.
Person
.
PersonFamilyName
)
&&
pd
.
Личность
Navigation
.
Имя
.
Contains
(
Person
.
Person
.
PersonName
)
&&
((
pd
.
Личность
Navigation
.
БезОтчества
==
null
||
pd
.
Личность
Navigation
.
БезОтчества
==
false
)
&
pd
.
Личность
Navigation
.
Отчество
.
Contains
(
Person
.
Person
.
PersonSurname
))
where
pd
.
СерияДокумента
.
Contains
(
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
)
&&
pd
.
НомерДокумента
.
Contains
(
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
)
&&
pd
.
Личность
Navigation
.
Фамилия
.
Contains
(
Person
.
Person
.
PersonFamilyName
)
&&
pd
.
Личность
Navigation
.
Имя
.
Contains
(
Person
.
Person
.
PersonName
)
&&
((
pd
.
Личность
Navigation
.
БезОтчества
==
null
||
pd
.
Личность
Navigation
.
БезОтчества
==
false
)
&
pd
.
Личность
Navigation
.
Отчество
.
Contains
(
Person
.
Person
.
PersonSurname
))
&&
pd
.
Личность
Navigation
.
ДатаРождения
==
Person
.
Person
.
PersonBirthday
join
lp
in
_contingentContext
.
ЛичностьПодразделения
s
on
pd
.
Личность
equals
lp
.
Личность
into
lps
from
lp
in
lps
.
DefaultIfEmpty
()
join
op
in
_contingentContext
.
ОбразовательнаяПрограммаОрганизации
s
on
lp
.
Организация
equals
op
.
Организация
into
ops
from
op
in
ops
.
DefaultIfEmpty
()
join
cp
in
_contingentContext
.
ТекущаяЛичностьПодразделения
s
on
pd
.
Личность
equals
cp
.
Личность
into
cps
from
cp
in
cps
.
DefaultIfEmpty
()
orderby
lp
.
НачальнаяДата
descending
select
new
SMResponceTemp
{
rowguid_eais
=
Person
.
Person
.
rowguid_eais
// СерияДокумента, НомерДокумента, КогдаВыданДокумент, ВидУдостоверяющегоДокумента,
// НаименованиеУдостоверяющегоДокумента, КодУдостоверяющегоДокумента
,
СерияДокумента
=
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
,
НомерДокумента
=
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
,
КогдаВыданДокумент
=
pd
.
КогдаВыданДокумент
,
ВидУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
,
НаименованиеУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Наименование
,
КодУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Код
,
СерияДокумента
=
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
,
НомерДокумента
=
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
,
КогдаВыданДокумент
=
pd
.
КогдаВыданДокумент
,
ВидУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
,
НаименованиеУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Наименование
,
КодУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Код
// Личность (Guid), Имя, Отчество, БезОтчества, Фамилия
,
Личность
=
pd
.
Личность
,
Имя
=
pd
.
Личность
Navigation
.
Имя
,
Отчество
=
pd
.
Личность
Navigation
.
Отчество
,
БезОтчества
=
pd
.
Личность
Navigation
.
БезОтчества
!=
null
,
Фамилия
=
pd
.
Личность
Navigation
.
Фамилия
,
Личность
=
pd
.
Личность
,
Имя
=
pd
.
Личность
Navigation
.
Имя
,
Отчество
=
pd
.
Личность
Navigation
.
Отчество
,
БезОтчества
=
pd
.
Личность
Navigation
.
БезОтчества
!=
null
,
Фамилия
=
pd
.
Личность
Navigation
.
Фамилия
// ДатаРождения, ТерриторияФактическогоМестаЖительстваNew (нигде не заполнено - null), Снилс
,
ДатаРождения
=
pd
.
Личность
Navigation
.
ДатаРождения
,
ТерриторияРегистрацииПоМестуЖительства
New
=
pd
.
Личность
Navigation
.
ТерриторияРегистрацииПоМестуЖительства
New
,
Снилс
=
pd
.
Личность
Navigation
.
Снилс
,
ДатаРождения
=
pd
.
Личность
Navigation
.
ДатаРождения
,
ТерриторияРегистрацииПоМестуЖительства
New
=
pd
.
Личность
Navigation
.
ТерриторияРегистрацииПоМестуЖительства
New
,
Снилс
=
pd
.
Личность
Navigation
.
Снилс
// ТерриторияShortname
,
Территория
Shortname
=
pd
.
Личность
Navigation
.
ТерриторияРегистрацииПоМестуЖительства
NewNavigation
.
Территория
Navigation
.
Наименование
// ПриказЗачисления, ПриказОтчисления, НачальнаяДата, КонечнаяДата, Подразделение (Guid), Организация (Guid)
,
ПриказЗачисления
=
lp
.
ПриказЗачисления
,
ПриказОтчисления
=
lp
.
ПриказОтчисления
,
НачальнаяДата
=
lp
.
НачальнаяДата
,
КонечнаяДата
=
lp
.
КонечнаяДата
,
Подразделение
=
lp
.
Подразделение
,
Организация
=
lp
.
Организация
,
ПриказЗачисления
=
lp
.
ПриказЗачисления
,
ПриказОтчисления
=
lp
.
ПриказОтчисления
,
НачальнаяДата
=
lp
.
НачальнаяДата
,
КонечнаяДата
=
lp
.
КонечнаяДата
,
Подразделение
=
lp
.
Подразделение
,
Организация
=
lp
.
Организация
// ТипОрганизации, ТипОрганизацииКод,
// ТипОрганизацииНаименование
,
ТипОрганизации
=
lp
.
Организация
Navigation
.
ТипОрганизации
,
ТипОрганизацииКод
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Код
,
ТипОрганизацииНаименование
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Наименование
,
ТипОрганизации
=
lp
.
Организация
Navigation
.
ТипОрганизации
,
ТипОрганизацииКод
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Код
,
ТипОрганизацииНаименование
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Наименование
// ПолноеНаименованиеОрганизации, ВидУчредителя (Guid), ВидУчредителяКод
,
ПолноеНаименованиеОрганизации
=
lp
.
Организация
Navigation
.
ПолноеНаименование
,
ВидУчредителя
=
lp
.
Организация
Navigation
.
ВидУчредителя
,
ВидУчредителяКод
=
lp
.
Организация
Navigation
.
ВидУчредителя
Navigation
.
Код
,
ПолноеНаименованиеОрганизации
=
lp
.
Организация
Navigation
.
ПолноеНаименование
,
ВидУчредителя
=
lp
.
Организация
Navigation
.
ВидУчредителя
,
ВидУчредителяКод
=
lp
.
Организация
Navigation
.
ВидУчредителя
Navigation
.
Код
// ОбразовательнаяПрограммаТип (Guid), ОбразовательнаяПрограммаКод
,
ОбразовательнаяПрограммаТип
=
op
.
ТипОп
,
ОбразовательнаяПрограммаКод
=
op
.
ТипОп
Navigation
.
Код
,
ОбразовательнаяПрограммаТип
=
lp
.
Подразделение
Navigation
.
ТипОп
,
ОбразовательнаяПрограммаКод
=
lp
.
Подразделение
Navigation
.
ТипОп
Navigation
.
Код
// ФормаОбученияКод, ФормаОбученияНаименование
,
ФормаОбученияКод
=
cp
.
ФормаОбучения
Navigation
.
Код
,
ФормаОбученияНаименование
=
cp
.
ФормаОбучения
Navigation
.
Наименование
,
ФормаОбученияКод
=
lp
.
Подразделение
Navigation
.
ФормаОбучения
Navigation
.
Код
,
ФормаОбученияНаименование
=
lp
.
Подразделение
Navigation
.
ФормаОбучения
Navigation
.
Наименование
}).
First
();
if
(
person_record
.
Фамилия
!=
Person
.
Person
.
PersonFamilyName
||
person_record
.
Имя
!=
Person
.
Person
.
PersonName
||
(
person_record
.
БезОтчества
==
true
&
person_record
.
Отчество
!=
Person
.
Person
.
PersonSurname
||
person_record
.
ДатаРождения
!=
Person
.
Person
.
PersonBirthday
))
{
Person
.
Person
.
Error
+=
"Personal information Error;"
;
_logger
.
Error
(
$"Person '
{{
@Error
}}
':
{{
@Person
}}
;"
,
"TryFillPersonStatus: "
,
Person
.
Person
);
}
if
(
person_record
.
СерияДокумента
!=
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
||
person_record
.
НомерДокумента
!=
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
if
(
person_record
.
СерияДокумента
!=
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
||
person_record
.
НомерДокумента
!=
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
||
person_record
.
КогдаВыданДокумент
!=
Person
.
Person
.
PersonDocument
.
PersonDocumentDate
)
{
Person
.
Person
.
Error
+=
"Personal document Error;"
;
_logger
.
Error
(
$"Person '
{{
@Error
}}
':
{{
@Person
}}
;"
,
"TryFillPersonStatus: "
,
Person
.
Person
);
...
...
@@ -164,33 +138,38 @@ namespace SocialMinistryDataExchange.Model {
// если ошибок нет или msg.priority = force дозополняем у себя данные
if
(
string
.
IsNullOrEmpty
(
Person
.
Person
.
Error
)
||
Priority
==
"force"
)
{
person_record
.
Фамилия
=
Person
.
Person
.
PersonFamilyName
;
person_record
.
Имя
=
Person
.
Person
.
PersonName
;
person_record
.
Отчество
=
Person
.
Person
.
PersonSurname
;
person_record
.
БезОтчества
=
string
.
IsNullOrEmpty
(
person_record
.
Отчество
);
person_record
.
ДатаРождения
=
Person
.
Person
.
PersonBirthday
;
person_record
.
СерияДокумента
=
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
;
person_record
.
НомерДокумента
=
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
;
person_record
.
КогдаВыданДокумент
=
Person
.
Person
.
PersonDocument
.
PersonDocumentDate
;
// TODO вид удостоверяющего документа
person_record
.
ТерриторияРегистрацииПоМестуЖительства
New
=
GetTeritory
(
_contingentContext
,
Person
.
Person
.
Territory
);
person_record
.
Снилс
=
String
.
IsNullOrEmpty
(
Person
.
Person
.
PersonSnils
)
?
person_record
.
Снилс
:
Person
.
Person
.
PersonSnils
;
//_contingentContext.SaveChanges();
// для записи личных данных
var
person_naming
=
(
from
p
in
_contingentContext
.
Личность
s
where
p
.
PrimaryKey
==
person_record
.
Личность
select
p
).
First
();
person_naming
.
Снилс
=
Person
.
Person
.
PersonSnils
;
person_naming
.
Фамилия
=
Person
.
Person
.
PersonFamilyName
;
person_naming
.
Имя
=
Person
.
Person
.
PersonName
;
person_naming
.
Отчество
=
Person
.
Person
.
PersonSurname
;
person_naming
.
БезОтчества
=
string
.
IsNullOrEmpty
(
person_naming
.
Отчество
);
person_naming
.
ДатаРождения
=
Person
.
Person
.
PersonBirthday
;
//person_temp.ТерриторияРегистрацииПоМестуЖительстваNew = person_record.ТерриторияРегистрацииПоМестуЖительстваNew;
//Person.Person.PersonAddress = String.IsNullOrEmpty(person_record.ТерриторияShortname) ? Person.Person.PersonAddress : person_record.ТерриторияShortname;
// для записи документа личности
//var person_identity = (from l in _contingentContext.ДокументЛичностиs where l.Личность == person_record.Личность orderby l.КогдаВыданДокумент descending select l).First();
//person_identity.СерияДокумента = Person.Person.PersonDocument.PersonDocumentSeria;
//person_identity.НомерДокумента = Person.Person.PersonDocument.PersonDocumentNumber;
//person_identity.КогдаВыданДокумент = Person.Person.PersonDocument.PersonDocumentDate;
int
a
=
(
_contingentContext
as
DbContext
).
SaveChanges
();
}
Person
.
Person
.
PersonFamilyName
=
person_record
.
Фамилия
;
Person
.
Person
.
PersonName
=
person_record
.
Имя
;
Person
.
Person
.
PersonSurname
=
person_record
.
Отчество
;
Person
.
Person
.
PersonBirthday
=
person_record
.
ДатаРождения
;
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
=
person_record
.
СерияДокумента
;
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
=
person_record
.
НомерДокумента
;
Person
.
Person
.
PersonDocument
.
PersonDocumentDate
=
person_record
.
КогдаВыданДокумент
;
else
{
Person
.
Person
.
PersonFamilyName
=
person_record
.
Фамилия
;
Person
.
Person
.
PersonName
=
person_record
.
Имя
;
Person
.
Person
.
PersonSurname
=
person_record
.
Отчество
;
Person
.
Person
.
PersonBirthday
=
person_record
.
ДатаРождения
;
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
=
person_record
.
СерияДокумента
;
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
=
person_record
.
НомерДокумента
;
Person
.
Person
.
PersonDocument
.
PersonDocumentDate
=
person_record
.
КогдаВыданДокумент
;
Person
.
Person
.
PersonSnils
=
String
.
IsNullOrEmpty
(
person_record
.
Снилс
)
?
Person
.
Person
.
PersonSnils
:
person_record
.
Снилс
;
}
Person
.
Person
.
PersonDocument
.
PersonDocumentType
=
person_record
.
КодУдостоверяющегоДокумента
==
12
||
person_record
.
КодУдостоверяющегоДокумента
==
13
||
person_record
.
КодУдостоверяющегоДокумента
==
21
?
1
:
person_record
.
КодУдостоверяющегоДокумента
==
11
||
person_record
.
КодУдостоверяющегоДокумента
==
31
?
2
:
99
;
Person
.
Person
.
PersonSnils
=
String
.
IsNullOrEmpty
(
person_record
.
Снилс
)
?
Person
.
Person
.
PersonSnils
:
person_record
.
Снилс
;
Person
.
Person
.
PersonAddress
=
String
.
IsNullOrEmpty
(
person_record
.
Территория
Shortname
)
?
Person
.
Person
.
PersonAddress
:
person_record
.
Территория
Shortname
;
if
(
string
.
IsNullOrEmpty
(
Person
.
Person
.
Error
))
{
Person
.
Person
.
rowguid_contingent
=
person_record
.
Личность
.
ToString
();
...
...
@@ -212,8 +191,7 @@ namespace SocialMinistryDataExchange.Model {
_
=>
"5"
,
};
//Person.PersonOccupation.EducationProgram = GetProgramType(_contingentContext, person_record.op.ТипОп).ToString() switch {
Person
.
PersonOccupation
.
EducationProgram
=
GetProgramType
(
_contingentContext
,
GetEducationProgram
(
_contingentContext
,
person_record
.
Организация
)).
ToString
()
switch
{
Person
.
PersonOccupation
.
EducationProgram
=
GetProgramType
(
_contingentContext
,
person_record
.
ОбразовательнаяПрограммаТип
).
ToString
().
ToUpper
()
switch
{
"5BE7BD7C-1202-45E2-8E9E-7247070EA7B6"
=>
"1"
,
"C09D82B4-CC8D-4EB8-9703-C95AEA53E044"
=>
"2"
,
"8E674FDF-32CF-4080-B062-85C41A067A6F"
=>
"3"
,
...
...
@@ -231,23 +209,26 @@ namespace SocialMinistryDataExchange.Model {
}
}
}
catch
(
TimeoutException
ex
)
{
Person
.
Person
.
Error
+=
"DB Error; "
;
_logger
.
Error
(
$"'
{{
@Module
}}
' '
{{
@Error
}}
':
{{
@Trace
}}
;"
,
"TryFillPersonStatus: "
,
ex
.
Message
,
ex
.
StackTrace
);
}
catch
(
Exception
ex
)
{
Person
.
Person
.
Error
+=
"Person not found;"
;
Person
.
Person
.
Error
+=
"Person not found;
"
;
_logger
.
Error
(
$"Person '
{{
@Error
}}
':
{{
@Person
}}
;"
,
"TryFillPersonStatus: "
,
Person
.
Person
);
}
}
private
static
Guid
?
GetEducationProgram
(
IContingentContext
context
,
Guid
?
organization
)
{
if
(
organization
==
null
)
{
return
null
;
}
var
educationProgrammType
=
(
from
oep
in
context
.
ОбразовательнаяПрограммаОрганизации
s
where
oep
.
Организация
==
organization
select
oep
.
ТипОп
).
First
();
return
educationProgrammType
;
}
private
static
Guid
?
GetTeritory
(
IContingentContext
context
,
string
address
)
{
private
static
Guid
?
GetTeritory
(
IContingentContext
context
,
ILogger
_logger
,
string
address
)
{
Guid
?
territory
=
null
;
if
(
string
.
IsNullOrEmpty
(
address
))
{
return
null
;
}
var
territory
=
(
from
terr
in
context
.
Территория
s
where
terr
.
Наименование
.
Contains
(
address
)
select
terr
.
PrimaryKey
).
First
();
try
{
territory
=
(
from
terr
in
context
.
Территория
s
where
terr
.
Наименование
.
Contains
(
address
)
select
terr
.
PrimaryKey
).
First
();
}
catch
(
Exception
ex
)
{
_logger
.
Error
(
$"'
{{
@Module
}}
' '
{{
@Error
}}
':
{{
@Trace
}}
;"
,
"GetTeritory: "
,
ex
.
Message
,
ex
.
StackTrace
);
}
return
territory
;
}
private
static
Guid
?
GetOrganizationType
(
IContingentContext
context
,
Guid
?
OrgTypeUid
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment