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
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
57 additions
and
23 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,8 +90,10 @@ namespace SocialMinistryDataExchange.Model {
...
@@ -87,8 +90,10 @@ 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
.
Фамилия
.
Contains
(
Person
.
Person
.
PersonFamilyName
)
&&
pd
.
Личность
Navigation
.
Имя
.
Contains
(
Person
.
Person
.
PersonName
)
&&
((
pd
.
Личность
Navigation
.
БезОтчества
==
null
||
pd
.
Личность
Navigation
.
БезОтчества
==
false
)
&
pd
.
Личность
Navigation
.
Отчество
.
Contains
(
Person
.
Person
.
PersonSurname
))
&&
((
pd
.
Личность
Navigation
.
БезОтчества
==
null
||
pd
.
Личность
Navigation
.
БезОтчества
==
false
)
&
pd
.
Личность
Navigation
.
Отчество
.
Contains
(
Person
.
Person
.
PersonSurname
))
&&
pd
.
Личность
Navigation
.
ДатаРождения
==
Person
.
Person
.
PersonBirthday
&&
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
...
@@ -102,28 +107,49 @@ namespace SocialMinistryDataExchange.Model {
...
@@ -102,28 +107,49 @@ namespace SocialMinistryDataExchange.Model {
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
,
КогдаВыданДокумент
=
pd
.
КогдаВыданДокумент
,
ВидУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
,
НаименованиеУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Наименование
,
КодУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Код
// Личность (Guid), Имя, Отчество, БезОтчества, Фамилия
// Личность (Guid), Имя, Отчество, БезОтчества, Фамилия
,
Личность
=
pd
.
Личность
,
Имя
=
pd
.
Личность
Navigation
.
Имя
,
Отчество
=
pd
.
Личность
Navigation
.
Отчество
,
БезОтчества
=
pd
.
Личность
Navigation
.
БезОтчества
!=
null
,
Фамилия
=
pd
.
Личность
Navigation
.
Фамилия
,
Личность
=
pd
.
Личность
,
Имя
=
pd
.
Личность
Navigation
.
Имя
,
Отчество
=
pd
.
Личность
Navigation
.
Отчество
,
БезОтчества
=
pd
.
Личность
Navigation
.
БезОтчества
!=
null
,
Фамилия
=
pd
.
Личность
Navigation
.
Фамилия
// ДатаРождения, ТерриторияФактическогоМестаЖительстваNew (нигде не заполнено - null), Снилс
// ДатаРождения, ТерриторияФактическогоМестаЖительстваNew (нигде не заполнено - null), Снилс
,
ДатаРождения
=
pd
.
Личность
Navigation
.
ДатаРождения
,
ТерриторияРегистрацииПоМестуЖительства
New
=
pd
.
Личность
Navigation
.
ТерриторияРегистрацииПоМестуЖительства
New
,
Снилс
=
pd
.
Личность
Navigation
.
Снилс
,
ДатаРождения
=
pd
.
Личность
Navigation
.
ДатаРождения
,
ТерриторияРегистрацииПоМестуЖительства
New
=
pd
.
Личность
Navigation
.
ТерриторияРегистрацииПоМестуЖительства
New
,
Снилс
=
pd
.
Личность
Navigation
.
Снилс
// ТерриторияShortname
// ТерриторияShortname
,
Территория
Shortname
=
pd
.
Личность
Navigation
.
ТерриторияРегистрацииПоМестуЖительства
NewNavigation
.
Территория
Navigation
.
Наименование
,
Территория
Shortname
=
pd
.
Личность
Navigation
.
ТерриторияРегистрацииПоМестуЖительства
NewNavigation
.
Территория
Navigation
.
Наименование
// ПриказЗачисления, ПриказОтчисления, НачальнаяДата, КонечнаяДата, Подразделение (Guid), Организация (Guid)
// ПриказЗачисления, ПриказОтчисления, НачальнаяДата, КонечнаяДата, Подразделение (Guid), Организация (Guid)
,
ПриказЗачисления
=
lp
.
ПриказЗачисления
,
ПриказОтчисления
=
lp
.
ПриказОтчисления
,
НачальнаяДата
=
lp
.
НачальнаяДата
,
КонечнаяДата
=
lp
.
КонечнаяДата
,
Подразделение
=
lp
.
Подразделение
,
Организация
=
lp
.
Организация
,
ПриказЗачисления
=
lp
.
ПриказЗачисления
,
ПриказОтчисления
=
lp
.
ПриказОтчисления
,
НачальнаяДата
=
lp
.
НачальнаяДата
,
КонечнаяДата
=
lp
.
КонечнаяДата
,
Подразделение
=
lp
.
Подразделение
,
Организация
=
lp
.
Организация
// ТипОрганизации, ТипОрганизацииКод,
// ТипОрганизации, ТипОрганизацииКод,
// ТипОрганизацииНаименование
// ТипОрганизацииНаименование
,
ТипОрганизации
=
lp
.
Организация
Navigation
.
ТипОрганизации
,
ТипОрганизацииКод
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Код
,
ТипОрганизации
=
lp
.
Организация
Navigation
.
ТипОрганизации
,
ТипОрганизацииКод
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Код
,
ТипОрганизацииНаименование
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Наименование
,
ТипОрганизацииНаименование
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Наименование
// ПолноеНаименованиеОрганизации, ВидУчредителя (Guid), ВидУчредителяКод
// ПолноеНаименованиеОрганизации, ВидУчредителя (Guid), ВидУчредителяКод
,
ПолноеНаименованиеОрганизации
=
lp
.
Организация
Navigation
.
ПолноеНаименование
,
ВидУчредителя
=
lp
.
Организация
Navigation
.
ВидУчредителя
,
ВидУчредителяКод
=
lp
.
Организация
Navigation
.
ВидУчредителя
Navigation
.
Код
,
ПолноеНаименованиеОрганизации
=
lp
.
Организация
Navigation
.
ПолноеНаименование
,
ВидУчредителя
=
lp
.
Организация
Navigation
.
ВидУчредителя
,
ВидУчредителяКод
=
lp
.
Организация
Navigation
.
ВидУчредителя
Navigation
.
Код
// ОбразовательнаяПрограммаТип (Guid), ОбразовательнаяПрограммаКод
// ОбразовательнаяПрограммаТип (Guid), ОбразовательнаяПрограммаКод
,
ОбразовательнаяПрограммаТип
=
op
.
ТипОп
,
ОбразовательнаяПрограммаКод
=
op
.
ТипОп
Navigation
.
Код
,
ОбразовательнаяПрограммаТип
=
op
.
ТипОп
,
ОбразовательнаяПрограммаКод
=
op
.
ТипОп
Navigation
.
Код
// ФормаОбученияКод, ФормаОбученияНаименование
// ФормаОбученияКод, ФормаОбученияНаименование
,
ФормаОбученияКод
=
cp
.
ФормаОбучения
Navigation
.
Код
,
ФормаОбученияНаименование
=
cp
.
ФормаОбучения
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