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
fc5ed2c5
authored
Mar 25, 2022
by
AlexNasyr
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
multiple persons request realized
parent
5fe0353f
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
75 additions
and
61 deletions
SocialMinistryDataExchange/Controllers/apiController.cs
SocialMinistryDataExchange/Model/ISMRepository.cs
SocialMinistryDataExchange/Model/SMRepository.cs
SocialMinistryDataExchange/Model/SMRequest.cs
SocialMinistryDataExchange/Controllers/apiController.cs
View file @
fc5ed2c5
...
@@ -12,23 +12,29 @@ namespace SocialMinistryDataExchange.Controllers {
...
@@ -12,23 +12,29 @@ namespace SocialMinistryDataExchange.Controllers {
_repository
=
repository
;
_repository
=
repository
;
}
}
// тестовый запрос с фиксированным документом личности
// тестовый запрос с фиксированным документом личности
[
HttpGet
]
[
HttpGet
]
[
Route
(
"[controller]/getpersonFixDoc"
)]
[
Route
(
"[controller]/getpersonFixDoc"
)]
public
async
Task
<
SMResponce
>
GetPersonFixDoc
()
{
public
async
Task
<
List
<
SMResponce
>>
GetPersonFixDoc
()
{
var
result
=
await
_repository
.
GetPersonByDoc
(
JsonSerializer
.
Serialize
(
new
SMPersonRequest
()
{
rowguid_eais
=
"223322"
,
document_seria
=
"V-II"
,
document_number
=
"123456"
}));
var
result
=
await
_repository
.
GetPersonByDoc
(
JsonSerializer
.
Serialize
(
new
List
<
SMPersonRequest
>()
{
new
SMPersonRequest
()
{
rowguid_eais
=
"223322"
,
document_seria
=
"V-II"
,
document_number
=
"123456"
}
}));
//var result = await _repository.GetPersonByDoc(JsonSerializer.Serialize(new List<SMPersonRequest>() { new SMPersonRequest() { rowguid_eais = "223322", document_seria = "V-II", document_number = "123456" }, new SMPersonRequest() { rowguid_eais = "322223", document_seria = "1234", document_number = "123456" } }));
return
result
;
return
result
;
}
}
// тестовый запрос для получения json формата
[
HttpGet
]
[
Route
(
"[controller]/getSMPersonNewDataRequest"
)]
public
async
Task
<
SMPersonNewDataRequest
>
GetSMPersonNewDataRequest
()
{
return
new
SMPersonNewDataRequest
();
}
// запрос по серии/номеру документа личности
// запрос по серии/номеру документа личности
//[HttpPost]
//[HttpPost]
[
HttpGet
]
[
HttpGet
]
[
Route
(
"[controller]/getpersonByDoc/{Rowguid}/{Seria}/{Number}"
)]
[
Route
(
"[controller]/getpersonByDoc/{Rowguid}/{Seria}/{Number}"
)]
public
async
Task
<
SMResponce
>
GetPersonByDoc
(
string
Rowguid
,
string
Seria
,
string
Number
)
{
public
async
Task
<
List
<
SMResponce
>
>
GetPersonByDoc
(
string
Rowguid
,
string
Seria
,
string
Number
)
{
var
result
=
await
_repository
.
GetPersonByDoc
(
JsonSerializer
.
Serialize
(
new
SMPersonRequest
()
{
rowguid_eais
=
Rowguid
,
document_seria
=
Seria
,
document_number
=
Number
}));
var
result
=
await
_repository
.
GetPersonByDoc
(
JsonSerializer
.
Serialize
(
new
SMPersonRequest
()
{
rowguid_eais
=
Rowguid
,
document_seria
=
Seria
,
document_number
=
Number
}));
return
result
;
return
result
;
}
}
// запрос статуса нуждаемости по guid личности
// запрос статуса нуждаемости по guid личности
//[HttpPost]
//[HttpPost]
[
HttpGet
]
[
HttpGet
]
...
@@ -38,10 +44,5 @@ namespace SocialMinistryDataExchange.Controllers {
...
@@ -38,10 +44,5 @@ namespace SocialMinistryDataExchange.Controllers {
return
result
;
return
result
;
}
}
[
HttpGet
]
[
Route
(
"[controller]/getSMPersonNewDataRequest"
)]
public
async
Task
<
SMPersonNewDataRequest
>
GetSMPersonNewDataRequest
()
{
return
new
SMPersonNewDataRequest
();
}
}
}
}
}
SocialMinistryDataExchange/Model/ISMRepository.cs
View file @
fc5ed2c5
...
@@ -3,7 +3,7 @@ using System.Threading.Tasks;
...
@@ -3,7 +3,7 @@ using System.Threading.Tasks;
namespace
SocialMinistryDataExchange.Model
{
namespace
SocialMinistryDataExchange.Model
{
public
interface
ISMRepository
{
public
interface
ISMRepository
{
Task
<
SMResponce
>
GetPersonByDoc
(
string
Document
);
Task
<
List
<
SMResponce
>
>
GetPersonByDoc
(
string
Document
);
Task
<
SMDefenceDemandResponce
>
GetPersonDefenceDemandByID
(
string
PersonID
);
Task
<
SMDefenceDemandResponce
>
GetPersonDefenceDemandByID
(
string
PersonID
);
}
}
}
}
SocialMinistryDataExchange/Model/SMRepository.cs
View file @
fc5ed2c5
...
@@ -21,50 +21,56 @@ namespace SocialMinistryDataExchange.Model {
...
@@ -21,50 +21,56 @@ namespace SocialMinistryDataExchange.Model {
return
Task
.
FromResult
(
status
);
return
Task
.
FromResult
(
status
);
}
}
public
Task
<
SMResponce
>
GetPersonByDoc
(
string
document
)
{
public
Task
<
List
<
SMResponce
>>
GetPersonByDoc
(
string
document
)
{
var
doc
=
JsonSerializer
.
Deserialize
<
SMPersonRequest
>(
document
);
var
docs
=
JsonSerializer
.
Deserialize
<
List
<
SMPersonRequest
>>(
document
);
try
{
List
<
SMResponce
>
responce
=
new
();
var
record
=
(
from
pd
in
_contingentContext
.
ДокументЛичности
s
foreach
(
SMPersonRequest
doc
in
docs
)
{
where
pd
.
СерияДокумента
==
doc
.
document_seria
&&
pd
.
НомерДокумента
==
doc
.
document_number
SMResponce
responce_record
=
new
SMResponce
();
join
lp
in
_contingentContext
.
ЛичностьПодразделения
s
on
pd
.
Личность
equals
lp
.
Личность
into
lps
try
{
from
lp
in
lps
.
DefaultIfEmpty
()
var
record
=
(
from
pd
in
_contingentContext
.
ДокументЛичности
s
join
op
in
_contingentContext
.
ОбразовательнаяПрограммаОрганизации
s
on
lp
.
Организация
equals
op
.
Организация
into
ops
where
pd
.
СерияДокумента
==
doc
.
document_seria
&&
pd
.
НомерДокумента
==
doc
.
document_number
from
op
in
ops
.
DefaultIfEmpty
()
join
lp
in
_contingentContext
.
ЛичностьПодразделения
s
on
pd
.
Личность
equals
lp
.
Личность
into
lps
join
cp
in
_contingentContext
.
ТекущаяЛичностьПодразделения
s
on
pd
.
Личность
equals
cp
.
Личность
into
cps
from
lp
in
lps
.
DefaultIfEmpty
()
from
cp
in
cps
.
DefaultIfEmpty
()
join
op
in
_contingentContext
.
ОбразовательнаяПрограммаОрганизации
s
on
lp
.
Организация
equals
op
.
Организация
into
ops
orderby
lp
.
НачальнаяДата
descending
from
op
in
ops
.
DefaultIfEmpty
()
select
new
SMResponceTemp
{
join
cp
in
_contingentContext
.
ТекущаяЛичностьПодразделения
s
on
pd
.
Личность
equals
cp
.
Личность
into
cps
rowguid_eais
=
doc
.
rowguid_eais
from
cp
in
cps
.
DefaultIfEmpty
()
// СерияДокумента, НомерДокумента, КогдаВыданДокумент, ВидУдостоверяющегоДокумента, НаименованиеУдостоверяющегоДокумента, КодУдостоверяющегоДокумента
orderby
lp
.
НачальнаяДата
descending
,
СерияДокумента
=
doc
.
document_seria
,
НомерДокумента
=
doc
.
document_number
,
КогдаВыданДокумент
=
pd
.
КогдаВыданДокумент
,
ВидУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
,
НаименованиеУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Наименование
,
КодУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Код
select
new
SMResponceTemp
{
// Личность (Guid), Имя, Отчество, БезОтчества, Фамилия
rowguid_eais
=
doc
.
rowguid_eais
,
Личность
=
pd
.
Личность
,
Имя
=
pd
.
Личность
Navigation
.
Имя
,
Отчество
=
pd
.
Личность
Navigation
.
Отчество
,
БезОтчества
=
pd
.
Личность
Navigation
.
БезОтчества
,
Фамилия
=
pd
.
Личность
Navigation
.
Фамилия
// СерияДокумента, НомерДокумента, КогдаВыданДокумент, ВидУдостоверяющегоДокумента, НаименованиеУдостоверяющегоДокумента, КодУдостоверяющегоДокумента
// ДатаРождения, ТерриторияФактическогоМестаЖительстваNew (нигде не заполнено - null), Снилс
,
СерияДокумента
=
doc
.
document_seria
,
НомерДокумента
=
doc
.
document_number
,
КогдаВыданДокумент
=
pd
.
КогдаВыданДокумент
,
ВидУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
,
НаименованиеУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Наименование
,
КодУдостоверяющегоДокумента
=
pd
.
ВидУдостоверяющегоДокумента
Navigation
.
Код
,
ДатаРождения
=
pd
.
Личность
Navigation
.
ДатаРождения
,
ТерриторияФактическогоМестаЖительства
New
=
pd
.
Личность
Navigation
.
ТерриторияФактическогоМестаЖительства
New
,
Снилс
=
pd
.
Личность
Navigation
.
Снилс
// Личность (Guid), Имя, Отчество, БезОтчества, Фамилия
// ТерриторияShortname
,
Личность
=
pd
.
Личность
,
Имя
=
pd
.
Личность
Navigation
.
Имя
,
Отчество
=
pd
.
Личность
Navigation
.
Отчество
,
БезОтчества
=
pd
.
Личность
Navigation
.
БезОтчества
,
Фамилия
=
pd
.
Личность
Navigation
.
Фамилия
,
Территория
Shortname
=
pd
.
Личность
Navigation
.
ТерриторияФактическогоМестаЖительства
NewNavigation
.
Территория
Navigation
.
Наименование
// ДатаРождения, ТерриторияФактическогоМестаЖительстваNew (нигде не заполнено - null), Снилс
// ПриказЗачисления, ПриказОтчисления, НачальнаяДата, КонечнаяДата, Подразделение (Guid), Организация (Guid)
,
ДатаРождения
=
pd
.
Личность
Navigation
.
ДатаРождения
,
ТерриторияФактическогоМестаЖительства
New
=
pd
.
Личность
Navigation
.
ТерриторияФактическогоМестаЖительства
New
,
Снилс
=
pd
.
Личность
Navigation
.
Снилс
,
ПриказЗачисления
=
lp
.
ПриказЗачисления
,
ПриказОтчисления
=
lp
.
ПриказОтчисления
,
НачальнаяДата
=
lp
.
НачальнаяДата
,
КонечнаяДата
=
lp
.
КонечнаяДата
,
Подразделение
=
lp
.
Подразделение
,
Организация
=
lp
.
Организация
// ТерриторияShortname
// ТипОрганизации, ТипОрганизацииКод, ТипОрганизацииНаименование
,
Территория
Shortname
=
pd
.
Личность
Navigation
.
ТерриторияФактическогоМестаЖительства
NewNavigation
.
Территория
Navigation
.
Наименование
,
ТипОрганизации
=
lp
.
Организация
Navigation
.
ТипОрганизации
,
ТипОрганизацииКод
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Код
,
ТипОрганизацииНаименование
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Наименование
// ПриказЗачисления, ПриказОтчисления, НачальнаяДата, КонечнаяДата, Подразделение (Guid), Организация (Guid)
// ПолноеНаименованиеОрганизации, ВидУчредителя (Guid), ВидУчредителяКод
,
ПриказЗачисления
=
lp
.
ПриказЗачисления
,
ПриказОтчисления
=
lp
.
ПриказОтчисления
,
НачальнаяДата
=
lp
.
НачальнаяДата
,
КонечнаяДата
=
lp
.
КонечнаяДата
,
Подразделение
=
lp
.
Подразделение
,
Организация
=
lp
.
Организация
,
ПолноеНаименованиеОрганизации
=
lp
.
Организация
Navigation
.
ПолноеНаименование
,
ВидУчредителя
=
lp
.
Организация
Navigation
.
ВидУчредителя
,
ВидУчредителяКод
=
lp
.
Организация
Navigation
.
ВидУчредителя
Navigation
.
Код
// ТипОрганизации, ТипОрганизацииКод, ТипОрганизацииНаименование
// ОбразовательнаяПрограммаТип (Guid), ОбразовательнаяПрограммаКод
,
ТипОрганизации
=
lp
.
Организация
Navigation
.
ТипОрганизации
,
ТипОрганизацииКод
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Код
,
ТипОрганизацииНаименование
=
lp
.
Организация
Navigation
.
ТипОрганизации
Navigation
.
Наименование
,
ОбразовательнаяПрограммаТип
=
op
.
ТипОп
,
ОбразовательнаяПрограммаКод
=
op
.
ТипОп
Navigation
.
Код
// ПолноеНаименованиеОрганизации, ВидУчредителя (Guid), ВидУчредителяКод
// ФормаОбученияКод, ФормаОбученияНаименование
,
ПолноеНаименованиеОрганизации
=
lp
.
Организация
Navigation
.
ПолноеНаименование
,
ВидУчредителя
=
lp
.
Организация
Navigation
.
ВидУчредителя
,
ВидУчредителяКод
=
lp
.
Организация
Navigation
.
ВидУчредителя
Navigation
.
Код
,
ФормаОбученияКод
=
cp
.
ФормаОбучения
Navigation
.
Код
,
ФормаОбученияНаименование
=
cp
.
ФормаОбучения
Navigation
.
Наименование
// ОбразовательнаяПрограммаТип (Guid), ОбразовательнаяПрограммаКод
}).
First
();
,
ОбразовательнаяПрограммаТип
=
op
.
ТипОп
,
ОбразовательнаяПрограммаКод
=
op
.
ТипОп
Navigation
.
Код
// записи не найдены
// ФормаОбученияКод, ФормаОбученияНаименование
if
(
record
==
null
)
{
,
ФормаОбученияКод
=
cp
.
ФормаОбучения
Navigation
.
Код
,
ФормаОбученияНаименование
=
cp
.
ФормаОбучения
Navigation
.
Наименование
record
=
new
SMResponceTemp
()
{
rowguid_eais
=
doc
.
rowguid_eais
,
СерияДокумента
=
doc
.
document_seria
,
НомерДокумента
=
doc
.
document_number
};
}).
First
();
// записи не найдены
if
(
record
==
null
)
{
record
=
new
SMResponceTemp
()
{
rowguid_eais
=
doc
.
rowguid_eais
,
СерияДокумента
=
doc
.
document_seria
,
НомерДокумента
=
doc
.
document_number
};
}
responce_record
=
FormatResponce
(
_contingentContext
,
record
);
}
}
var
responce
=
FormatResponce
(
_contingentContext
,
record
);
catch
(
Exception
ex
)
{
return
Task
.
FromResult
(
responce
);
// TODO log exception
}
responce_record
=
FormatResponce
(
_contingentContext
,
new
SMResponceTemp
()
{
rowguid_eais
=
doc
.
rowguid_eais
,
СерияДокумента
=
doc
.
document_seria
,
НомерДокумента
=
doc
.
document_number
});
catch
(
Exception
ex
)
{
}
// TODO log exception
responce
.
Add
(
responce_record
);
return
Task
.
FromResult
(
FormatResponce
(
_contingentContext
,
new
SMResponceTemp
()
{
rowguid_eais
=
doc
.
rowguid_eais
,
СерияДокумента
=
doc
.
document_seria
,
НомерДокумента
=
doc
.
document_number
}));
}
}
return
Task
.
FromResult
(
responce
);
}
}
static
Guid
?
GetOrganizationType
(
IContingentContext
context
,
Guid
?
OrgTypeUid
)
{
static
Guid
?
GetOrganizationType
(
IContingentContext
context
,
Guid
?
OrgTypeUid
)
{
...
...
SocialMinistryDataExchange/Model/SMRequest.cs
View file @
fc5ed2c5
...
@@ -12,24 +12,29 @@ namespace SocialMinistryDataExchange.Model {
...
@@ -12,24 +12,29 @@ namespace SocialMinistryDataExchange.Model {
public
string
MsgID
{
get
;
set
;
}
public
string
MsgID
{
get
;
set
;
}
public
DateTime
MsgDataTime
{
get
;
set
;
}
public
DateTime
MsgDataTime
{
get
;
set
;
}
public
string
?
MsgPriority
{
get
;
set
;
}
public
string
?
MsgPriority
{
get
;
set
;
}
public
CocialDefenceStatusMessage
MsgData
{
get
;
set
;
}
}
public
class
CocialDefenceStatusMessage
{
public
Person
Person
{
get
;
set
;
}
public
Person
Person
{
get
;
set
;
}
public
string
PersonStatus
{
get
;
set
;
}
public
PersonCocialDefenceStatus
PersonStatus
{
get
;
set
;
}
public
Person
[]?
Relatives
{
get
;
set
;
}
}
public
class
PersonCocialDefenceStatus
{
public
int
Status
{
get
;
set
;
}
public
DateTime
PersonStatusStartDate
{
get
;
set
;
}
public
DateTime
PersonStatusStartDate
{
get
;
set
;
}
public
DateTime
PersonStatusEndDate
{
get
;
set
;
}
public
DateTime
PersonStatusEndDate
{
get
;
set
;
}
public
Person
[]
Relatives
{
get
;
set
;
}
public
int
?
FamilyPersonsCount
{
get
;
set
;
}
public
int
FamilyPersonsCount
{
get
;
set
;
}
public
double
?
AvgIncome
{
get
;
set
;
}
public
double
AvgIncome
{
get
;
set
;
}
public
double
?
MinIncome
{
get
;
set
;
}
public
double
MinIncome
{
get
;
set
;
}
public
string
Territory
{
get
;
set
;
}
}
}
public
class
Person
{
public
class
Person
{
public
string
rowguid_eais
{
get
;
set
;
}
public
string
rowguid_eais
{
get
;
set
;
}
public
string
?
rowguid_contingent
{
get
;
set
;
}
public
string
?
rowguid_contingent
{
get
;
set
;
}
public
string
PersonFamilyName
{
get
;
set
;
}
public
string
PersonFamilyName
{
get
;
set
;
}
public
string
PersonName
{
get
;
set
;
}
public
string
PersonName
{
get
;
set
;
}
public
string
PersonSurname
{
get
;
set
;
}
public
string
?
PersonSurname
{
get
;
set
;
}
public
DateTime
PersonBirthday
{
get
;
set
;
}
public
DateTime
PersonBirthday
{
get
;
set
;
}
public
string
PersonDocumentType
{
get
;
set
;
}
public
int
PersonDocumentType
{
get
;
set
;
}
public
string
PersonDocumentSeria
{
get
;
set
;
}
public
string
PersonDocumentSeria
{
get
;
set
;
}
public
string
PersonDocumentNumber
{
get
;
set
;
}
public
string
PersonDocumentNumber
{
get
;
set
;
}
public
DateTime
PersonDocumentDate
{
get
;
set
;
}
public
DateTime
PersonDocumentDate
{
get
;
set
;
}
...
@@ -37,5 +42,7 @@ namespace SocialMinistryDataExchange.Model {
...
@@ -37,5 +42,7 @@ namespace SocialMinistryDataExchange.Model {
public
string
?
PersonAddress
{
get
;
set
;
}
public
string
?
PersonAddress
{
get
;
set
;
}
public
string
?
DependentPerson
{
get
;
set
;
}
public
string
?
DependentPerson
{
get
;
set
;
}
public
string
?
DependenceType
{
get
;
set
;
}
public
string
?
DependenceType
{
get
;
set
;
}
public
string
?
Territory
{
get
;
set
;
}
}
}
}
}
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