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
1dfc487a
authored
Mar 30, 2022
by
Alex Nasyr
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Все сломалось. аминь
parent
3f018f22
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
72 additions
and
38 deletions
SocialMinistryDataExchange/Model/Contingent/Center/Contingent_center_Context.cs
SocialMinistryDataExchange/Model/SMRepository.cs
SocialMinistryDataExchange/Startup.cs
SocialMinistryDataExchange/Model/Contingent/Center/Contingent_center_Context.cs
View file @
1dfc487a
...
@@ -10,7 +10,6 @@ namespace SocialMinistryDataExchange.Model.Contingent.Center
...
@@ -10,7 +10,6 @@ namespace SocialMinistryDataExchange.Model.Contingent.Center
public
Contingent_center_Context
()
public
Contingent_center_Context
()
{
{
}
}
public
Contingent_center_Context
(
DbContextOptions
<
Contingent_center_Context
>
options
)
public
Contingent_center_Context
(
DbContextOptions
<
Contingent_center_Context
>
options
)
:
base
(
options
)
:
base
(
options
)
{
{
...
...
SocialMinistryDataExchange/Model/SMRepository.cs
View file @
1dfc487a
...
@@ -8,15 +8,18 @@ using System.Xml.Serialization;
...
@@ -8,15 +8,18 @@ using System.Xml.Serialization;
using
SocialMinistryDataExchange.Model.EscpSD
;
using
SocialMinistryDataExchange.Model.EscpSD
;
using
System.IO
;
using
System.IO
;
using
Microsoft.EntityFrameworkCore
;
using
Microsoft.EntityFrameworkCore
;
using
SocialMinistryDataExchange.Model.Contingent.Center
;
namespace
SocialMinistryDataExchange.Model
{
namespace
SocialMinistryDataExchange.Model
{
public
class
SMRepository
:
ISMRepository
{
public
class
SMRepository
:
ISMRepository
{
//private readonly Contingent_center_Context _contingentContext;
private
readonly
IContingentContext
_contingentContext
;
private
readonly
IContingentContext
_contingentContext
;
private
readonly
ILogger
_logger
;
private
readonly
ILogger
_logger
;
public
SMRepository
()
{
public
SMRepository
()
{
}
}
public
SMRepository
(
IContingentContext
contingentContext
,
ILogger
logger
)
{
public
SMRepository
(
IContingentContext
contingentContext
,
ILogger
logger
)
{
//public SMRepository(Contingent_center_Context contingentContext, ILogger logger) {
_contingentContext
=
contingentContext
;
_contingentContext
=
contingentContext
;
_logger
=
logger
;
_logger
=
logger
;
}
}
...
@@ -87,10 +90,12 @@ namespace SocialMinistryDataExchange.Model {
...
@@ -87,10 +90,12 @@ namespace SocialMinistryDataExchange.Model {
private
void
TryFillPersonStatus
(
SMPersonDataOccupationMessage
Person
,
string
Priority
)
{
private
void
TryFillPersonStatus
(
SMPersonDataOccupationMessage
Person
,
string
Priority
)
{
try
{
try
{
var
person_record
=
(
from
pd
in
_contingentContext
.
ДокументЛичности
s
var
person_record
=
(
from
pd
in
_contingentContext
.
ДокументЛичности
s
where
pd
.
СерияДокумента
.
Contains
(
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
)
&&
pd
.
НомерДокумента
.
Contains
(
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
)
where
pd
.
СерияДокумента
.
Contains
(
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
)
&&
pd
.
Личность
Navigation
.
Фамилия
.
Contains
(
Person
.
Person
.
PersonFamilyName
)
&&
pd
.
Личность
Navigation
.
Имя
.
Contains
(
Person
.
Person
.
PersonName
)
&&
pd
.
НомерДокумента
.
Contains
(
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
)
&&
((
pd
.
Личность
Navigation
.
БезОтчества
==
null
||
pd
.
Личность
Navigation
.
БезОтчества
==
false
)
&
pd
.
Личность
Navigation
.
Отчество
.
Contains
(
Person
.
Person
.
PersonSurname
))
&&
pd
.
Личность
Navigation
.
Фамилия
.
Contains
(
Person
.
Person
.
PersonFamilyName
)
&&
pd
.
Личность
Navigation
.
ДатаРождения
==
Person
.
Person
.
PersonBirthday
&&
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
join
lp
in
_contingentContext
.
ЛичностьПодразделения
s
on
pd
.
Личность
equals
lp
.
Личность
into
lps
from
lp
in
lps
.
DefaultIfEmpty
()
from
lp
in
lps
.
DefaultIfEmpty
()
join
op
in
_contingentContext
.
ОбразовательнаяПрограммаОрганизации
s
on
lp
.
Организация
equals
op
.
Организация
into
ops
join
op
in
_contingentContext
.
ОбразовательнаяПрограммаОрганизации
s
on
lp
.
Организация
equals
op
.
Организация
into
ops
...
@@ -100,30 +105,51 @@ namespace SocialMinistryDataExchange.Model {
...
@@ -100,30 +105,51 @@ namespace SocialMinistryDataExchange.Model {
orderby
lp
.
НачальнаяДата
descending
orderby
lp
.
НачальнаяДата
descending
select
new
SMResponceTemp
{
select
new
SMResponceTemp
{
rowguid_eais
=
Person
.
Person
.
rowguid_eais
rowguid_eais
=
Person
.
Person
.
rowguid_eais
// СерияДокумента, НомерДокумента, КогдаВыданДокумент, ВидУдостоверяющегоДокумента,
// СерияДокумента, НомерДокумента, КогдаВыданДокумент, ВидУдостоверяющегоДокумента,
// НаименованиеУдостоверяющегоДокумента, КодУдостоверяющегоДокумента
// НаименованиеУдостоверяющегоДокумента, КодУдостоверяющегоДокумента
,
СерияДокумента
=
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
,
НомерДокумента
=
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
,
КогдаВыданДокумент
=
pd
.
КогдаВыданДокумент
,
ВидУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
,
СерияДокумента
=
Person
.
Person
.
PersonDocument
.
PersonDocumentSeria
,
НаименованиеУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Наименование
,
КодУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Код
,
НомерДокумента
=
Person
.
Person
.
PersonDocument
.
PersonDocumentNumber
// Личность (Guid), Имя, Отчество, БезОтчества, Фамилия
,
КогдаВыданДокумент
=
pd
.
КогдаВыданДокумент
,
Личность
=
pd
.
Личность
,
Имя
=
pd
.
Личность
Navigation
.
Имя
,
Отчество
=
pd
.
Личность
Navigation
.
Отчество
,
БезОтчества
=
pd
.
Личность
Navigation
.
БезОтчества
!=
null
,
Фамилия
=
pd
.
Личность
Navigation
.
Фамилия
,
ВидУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
// ДатаРождения, ТерриторияФактическогоМестаЖительстваNew (нигде не заполнено - null), Снилс
,
НаименованиеУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Наименование
,
ДатаРождения
=
pd
.
Личность
Navigation
.
ДатаРождения
,
ТерриторияРегистрацииПоМестуЖительства
New
=
pd
.
Личность
Navigation
.
ТерриторияРегистрацииПоМестуЖительства
New
,
Снилс
=
pd
.
Личность
Navigation
.
Снилс
,
КодУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Код
// ТерриторияShortname
// Личность (Guid), Имя, Отчество, БезОтчества, Фамилия
,
Территория
Shortname
=
pd
.
Личность
Navigation
.
ТерриторияРегистрацииПоМестуЖительства
NewNavigation
.
Территория
Navigation
.
Наименование
,
Личность
=
pd
.
Личность
// ПриказЗачисления, ПриказОтчисления, НачальнаяДата, КонечнаяДата, Подразделение (Guid), Организация (Guid)
,
Имя
=
pd
.
Личность
Navigation
.
Имя
,
ПриказЗачисления
=
lp
.
ПриказЗачисления
,
ПриказОтчисления
=
lp
.
ПриказОтчисления
,
НачальнаяДата
=
lp
.
НачальнаяДата
,
КонечнаяДата
=
lp
.
КонечнаяДата
,
Подразделение
=
lp
.
Подразделение
,
Организация
=
lp
.
Организация
,
Отчество
=
pd
.
Личность
Navigation
.
Отчество
// ТипОрганизации, ТипОрганизацииКод,
,
БезОтчества
=
pd
.
Личность
Navigation
.
БезОтчества
!=
null
// ТипОрганизацииНаименование
,
Фамилия
=
pd
.
Личность
Navigation
.
Фамилия
,
ТипОрганизации
=
lp
.
Организация
Navigation
.
ТипОрганизации
,
ТипОрганизацииКод
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Код
// ДатаРождения, ТерриторияФактическогоМестаЖительстваNew (нигде не заполнено - null), Снилс
,
ТипОрганизацииНаименование
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Наименование
,
ДатаРождения
=
pd
.
Личность
Navigation
.
ДатаРождения
// ПолноеНаименованиеОрганизации, ВидУчредителя (Guid), ВидУчредителяКод
,
ТерриторияРегистрацииПоМестуЖительства
New
=
pd
.
Личность
Navigation
.
ТерриторияРегистрацииПоМестуЖительства
New
,
ПолноеНаименованиеОрганизации
=
lp
.
Организация
Navigation
.
ПолноеНаименование
,
ВидУчредителя
=
lp
.
Организация
Navigation
.
ВидУчредителя
,
ВидУчредителяКод
=
lp
.
Организация
Navigation
.
ВидУчредителя
Navigation
.
Код
,
Снилс
=
pd
.
Личность
Navigation
.
Снилс
// ОбразовательнаяПрограммаТип (Guid), ОбразовательнаяПрограммаКод
// ТерриторияShortname
,
ОбразовательнаяПрограммаТип
=
op
.
ТипОп
,
ОбразовательнаяПрограммаКод
=
op
.
ТипОп
Navigation
.
Код
,
Территория
Shortname
=
pd
.
Личность
Navigation
.
ТерриторияРегистрацииПоМестуЖительства
NewNavigation
.
Территория
Navigation
.
Наименование
// ФормаОбученияКод, ФормаОбученияНаименование
// ПриказЗачисления, ПриказОтчисления, НачальнаяДата, КонечнаяДата, Подразделение (Guid), Организация (Guid)
,
ФормаОбученияКод
=
cp
.
ФормаОбучения
Navigation
.
Код
,
ФормаОбученияНаименование
=
cp
.
ФормаОбучения
Navigation
.
Наименование
,
ПриказЗачисления
=
lp
.
ПриказЗачисления
,
ПриказОтчисления
=
lp
.
ПриказОтчисления
,
НачальнаяДата
=
lp
.
НачальнаяДата
,
КонечнаяДата
=
lp
.
КонечнаяДата
,
Подразделение
=
lp
.
Подразделение
,
Организация
=
lp
.
Организация
// ТипОрганизации, ТипОрганизацииКод,
// ТипОрганизацииНаименование
,
ТипОрганизации
=
lp
.
Организация
Navigation
.
ТипОрганизации
,
ТипОрганизацииКод
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Код
,
ТипОрганизацииНаименование
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Наименование
// ПолноеНаименованиеОрганизации, ВидУчредителя (Guid), ВидУчредителяКод
,
ПолноеНаименованиеОрганизации
=
lp
.
Организация
Navigation
.
ПолноеНаименование
,
ВидУчредителя
=
lp
.
Организация
Navigation
.
ВидУчредителя
,
ВидУчредителяКод
=
lp
.
Организация
Navigation
.
ВидУчредителя
Navigation
.
Код
// ОбразовательнаяПрограммаТип (Guid), ОбразовательнаяПрограммаКод
,
ОбразовательнаяПрограммаТип
=
op
.
ТипОп
,
ОбразовательнаяПрограммаКод
=
op
.
ТипОп
Navigation
.
Код
// ФормаОбученияКод, ФормаОбученияНаименование
,
ФормаОбученияКод
=
cp
.
ФормаОбучения
Navigation
.
Код
,
ФормаОбученияНаименование
=
cp
.
ФормаОбучения
Navigation
.
Наименование
}).
First
();
}).
First
();
if
(
person_record
.
Фамилия
!=
Person
.
Person
.
PersonFamilyName
||
person_record
.
Имя
!=
Person
.
Person
.
PersonName
if
(
person_record
.
Фамилия
!=
Person
.
Person
.
PersonFamilyName
||
person_record
.
Имя
!=
Person
.
Person
.
PersonName
||
(
person_record
.
БезОтчества
==
true
&
person_record
.
Отчество
!=
Person
.
Person
.
PersonSurname
||
(
person_record
.
БезОтчества
==
true
&
person_record
.
Отчество
!=
Person
.
Person
.
PersonSurname
||
person_record
.
ДатаРождения
!=
Person
.
Person
.
PersonBirthday
))
{
||
person_record
.
ДатаРождения
!=
Person
.
Person
.
PersonBirthday
))
{
...
@@ -148,9 +174,11 @@ namespace SocialMinistryDataExchange.Model {
...
@@ -148,9 +174,11 @@ namespace SocialMinistryDataExchange.Model {
person_record
.
КогдаВыданДокумент
=
Person
.
Person
.
PersonDocument
.
PersonDocumentDate
;
person_record
.
КогдаВыданДокумент
=
Person
.
Person
.
PersonDocument
.
PersonDocumentDate
;
// TODO вид удостоверяющего документа
// TODO вид удостоверяющего документа
person_record
.
ТерриторияРегистрацииПоМестуЖительства
New
=
GetTeritory
(
_contingentContext
,
Person
.
Person
.
Territory
);
person_record
.
ТерриторияРегистрацииПоМестуЖительства
New
=
GetTeritory
(
_contingentContext
,
Person
.
Person
.
Territory
);
person_record
.
Снилс
=
String
.
IsNullOrEmpty
(
Person
.
Person
.
PersonSnils
)
?
person_record
.
Снилс
:
Person
.
Person
.
PersonSnils
;
person_record
.
Снилс
=
String
.
IsNullOrEmpty
(
Person
.
Person
.
PersonSnils
)
?
person_record
.
Снилс
:
Person
.
Person
.
PersonSnils
;
int
a
=(
_contingentContext
as
DbContext
).
SaveChanges
();
int
b
=
((
DbContext
)
_contingentContext
).
SaveChanges
(
true
);
//_contingentContext.SaveChanges();
int
a
=
(
_contingentContext
as
DbContext
).
SaveChanges
();
}
}
Person
.
Person
.
PersonFamilyName
=
person_record
.
Фамилия
;
Person
.
Person
.
PersonFamilyName
=
person_record
.
Фамилия
;
Person
.
Person
.
PersonName
=
person_record
.
Имя
;
Person
.
Person
.
PersonName
=
person_record
.
Имя
;
...
@@ -184,7 +212,8 @@ namespace SocialMinistryDataExchange.Model {
...
@@ -184,7 +212,8 @@ namespace SocialMinistryDataExchange.Model {
_
=>
"5"
,
_
=>
"5"
,
};
};
Person
.
PersonOccupation
.
EducationProgram
=
GetProgramType
(
_contingentContext
,
person_record
.
ОбразовательнаяПрограммаТип
).
ToString
()
switch
{
//Person.PersonOccupation.EducationProgram = GetProgramType(_contingentContext, person_record.op.ТипОп).ToString() switch {
Person
.
PersonOccupation
.
EducationProgram
=
GetProgramType
(
_contingentContext
,
GetEducationProgram
(
_contingentContext
,
person_record
.
Организация
)).
ToString
()
switch
{
"5BE7BD7C-1202-45E2-8E9E-7247070EA7B6"
=>
"1"
,
"5BE7BD7C-1202-45E2-8E9E-7247070EA7B6"
=>
"1"
,
"C09D82B4-CC8D-4EB8-9703-C95AEA53E044"
=>
"2"
,
"C09D82B4-CC8D-4EB8-9703-C95AEA53E044"
=>
"2"
,
"8E674FDF-32CF-4080-B062-85C41A067A6F"
=>
"3"
,
"8E674FDF-32CF-4080-B062-85C41A067A6F"
=>
"3"
,
...
@@ -207,6 +236,13 @@ namespace SocialMinistryDataExchange.Model {
...
@@ -207,6 +236,13 @@ namespace SocialMinistryDataExchange.Model {
_logger
.
Error
(
$"Person '
{{
@Error
}}
':
{{
@Person
}}
;"
,
"TryFillPersonStatus: "
,
Person
.
Person
);
_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
,
string
address
)
{
if
(
string
.
IsNullOrEmpty
(
address
))
{
if
(
string
.
IsNullOrEmpty
(
address
))
{
return
null
;
return
null
;
...
@@ -242,17 +278,17 @@ namespace SocialMinistryDataExchange.Model {
...
@@ -242,17 +278,17 @@ namespace SocialMinistryDataExchange.Model {
SMData
responce_record
;
SMData
responce_record
;
foreach
(
var
doc
in
docs
.
MsgData
)
{
foreach
(
var
doc
in
docs
.
MsgData
)
{
try
{
try
{
if
(
doc
.
Person
.
PersonDocument
.
PersonDocumentSeria
is
null
||
doc
.
Person
.
PersonDocument
.
PersonDocumentNumber
is
null
||
doc
.
Person
.
PersonFamilyName
is
null
||
doc
.
Person
.
PersonName
is
null
||
doc
.
Person
.
PersonBirthday
is
null
)
{
//
if (doc.Person.PersonDocument.PersonDocumentSeria is null || doc.Person.PersonDocument.PersonDocumentNumber is null || doc.Person.PersonFamilyName is null || doc.Person.PersonName is null || doc.Person.PersonBirthday is null) {
throw
new
ArgumentNullException
(
$"
{
nameof
(
doc
.
Person
)}
"
);
//
throw new ArgumentNullException($"{nameof(doc.Person)}");
}
//
}
responce_record
=
new
SMData
();
responce_record
=
new
SMData
();
var
record
=
(
from
pd
in
_contingentContext
.
ДокументЛичности
s
var
record
=
(
from
pd
in
_contingentContext
.
ДокументЛичности
s
where
pd
.
СерияДокумента
==
doc
.
Person
.
PersonDocument
.
PersonDocumentSeria
&&
pd
.
НомерДокумента
==
doc
.
Person
.
PersonDocument
.
PersonDocumentNumber
where
pd
.
СерияДокумента
==
doc
.
Person
.
PersonDocument
.
PersonDocumentSeria
&&
pd
.
НомерДокумента
==
doc
.
Person
.
PersonDocument
.
PersonDocumentNumber
&&
pd
.
Личность
Navigation
.
Фамилия
==
doc
.
Person
.
PersonFamilyName
&&
pd
.
Личность
Navigation
.
Имя
==
doc
.
Person
.
PersonName
//
&& pd.ЛичностьNavigation.Фамилия == doc.Person.PersonFamilyName && pd.ЛичностьNavigation.Имя == doc.Person.PersonName
&&
(
pd
.
Личность
Navigation
.
БезОтчества
==
false
&
pd
.
Личность
Navigation
.
Отчество
==
doc
.
Person
.
PersonSurname
)
//
&& (pd.ЛичностьNavigation.БезОтчества == false & pd.ЛичностьNavigation.Отчество == doc.Person.PersonSurname)
&&
pd
.
Личность
Navigation
.
ДатаРождения
==
doc
.
Person
.
PersonBirthday
//
&& pd.ЛичностьNavigation.ДатаРождения == doc.Person.PersonBirthday
join
lp
in
_contingentContext
.
ЛичностьПодразделения
s
on
pd
.
Личность
equals
lp
.
Личность
into
lps
join
lp
in
_contingentContext
.
ЛичностьПодразделения
s
on
pd
.
Личность
equals
lp
.
Личность
into
lps
from
lp
in
lps
.
DefaultIfEmpty
()
from
lp
in
lps
.
DefaultIfEmpty
()
join
op
in
_contingentContext
.
ОбразовательнаяПрограммаОрганизации
s
on
lp
.
Организация
equals
op
.
Организация
into
ops
join
op
in
_contingentContext
.
ОбразовательнаяПрограммаОрганизации
s
on
lp
.
Организация
equals
op
.
Организация
into
ops
...
...
SocialMinistryDataExchange/Startup.cs
View file @
1dfc487a
...
@@ -23,7 +23,6 @@ namespace SocialMinistryDataExchange {
...
@@ -23,7 +23,6 @@ namespace SocialMinistryDataExchange {
// This method gets called by the runtime. Use this method to add services to the container.
// This method gets called by the runtime. Use this method to add services to the container.
public
void
ConfigureServices
(
IServiceCollection
services
)
{
public
void
ConfigureServices
(
IServiceCollection
services
)
{
var
ConnectionString
=
Configuration
.
GetConnectionString
(
"_center"
);
var
ConnectionString
=
Configuration
.
GetConnectionString
(
"_center"
);
Log
.
Logger
=
new
LoggerConfiguration
()
Log
.
Logger
=
new
LoggerConfiguration
()
.
MinimumLevel
.
Debug
()
.
MinimumLevel
.
Debug
()
...
...
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