Commit 5fe0353f by AlexNasyr

repository cleaning

parent ce501e84
......@@ -13,24 +13,10 @@ namespace SocialMinistryDataExchange.Controllers {
}
[HttpGet]
[Route("[controller]/getpersonFixID")]
public async Task<List<SMResponce>> GetPersonFixID() {
var result = await _repository.GetPersonByID("27373577-4234-43B2-A969-8D95B9384171");
return result;
}
//[HttpPost]
[HttpGet]
[Route("[controller]/getpersonByID/{PersonID}")]
public async Task<List<SMResponce>> GetPersonByID(string PersonID) {
var result = await _repository.GetPersonByID(PersonID);
return result;
}
// тестовый запрос с фиксированным документом личности
[HttpGet]
[Route("[controller]/getpersonFixDoc")]
public async Task<List<SMResponce>> GetPersonFixDoc() {
public async Task<SMResponce> GetPersonFixDoc() {
var result = await _repository.GetPersonByDoc(JsonSerializer.Serialize(new SMPersonRequest() { rowguid_eais = "223322", document_seria = "V-II", document_number = "123456" }));
return result;
}
......@@ -38,7 +24,7 @@ namespace SocialMinistryDataExchange.Controllers {
//[HttpPost]
[HttpGet]
[Route("[controller]/getpersonByDoc/{Rowguid}/{Seria}/{Number}")]
public async Task<List<SMResponce>> GetPersonFixDoc(string Rowguid, string Seria, string Number) {
public async Task<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 }));
return result;
}
......
......@@ -3,8 +3,7 @@ using System.Threading.Tasks;
namespace SocialMinistryDataExchange.Model {
public interface ISMRepository {
Task<List<SMResponce>> GetPersonByID(string ID);
Task<List<SMResponce>> GetPersonByDoc(string Document);
Task<SMResponce> GetPersonByDoc(string Document);
Task<SMDefenceDemandResponce> GetPersonDefenceDemandByID(string PersonID);
}
}
......@@ -21,10 +21,10 @@ namespace SocialMinistryDataExchange.Model {
return Task.FromResult(status);
}
public Task<List<SMResponce>> GetPersonByDoc(string document) {
public Task<SMResponce> GetPersonByDoc(string document) {
var doc = JsonSerializer.Deserialize<SMPersonRequest>(document);
try {
var records = (from pd in _contingentContext.ДокументЛичностиs
var record = (from pd in _contingentContext.ДокументЛичностиs
where pd.СерияДокумента == doc.document_seria && pd.НомерДокумента == doc.document_number
join lp in _contingentContext.ЛичностьПодразделенияs on pd.Личность equals lp.Личность into lps
from lp in lps.DefaultIfEmpty()
......@@ -32,7 +32,7 @@ namespace SocialMinistryDataExchange.Model {
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 = doc.rowguid_eais
// СерияДокумента, НомерДокумента, КогдаВыданДокумент, ВидУдостоверяющегоДокумента, НаименованиеУдостоверяющегоДокумента, КодУдостоверяющегоДокумента
......@@ -53,16 +53,17 @@ namespace SocialMinistryDataExchange.Model {
, ОбразовательнаяПрограммаТип = op.ТипОп, ОбразовательнаяПрограммаКод = op.ТипОпNavigation.Код
// ФормаОбученияКод, ФормаОбученияНаименование
, ФормаОбученияКод = cp.ФормаОбученияNavigation.Код, ФормаОбученияНаименование = cp.ФормаОбученияNavigation.Наименование
}).ToList();
}).First();
// записи не найдены
if (records.Count == 0) {
records.Add(new SMResponceTemp() { rowguid_eais = doc.rowguid_eais, СерияДокумента = doc.document_seria, НомерДокумента = doc.document_number });
if (record == null) {
record = new SMResponceTemp() { rowguid_eais = doc.rowguid_eais, СерияДокумента = doc.document_seria, НомерДокумента = doc.document_number };
}
return Task.FromResult(FormatResponce(_contingentContext, records));
var responce = FormatResponce(_contingentContext, record);
return Task.FromResult(responce);
}
catch (Exception ex) {
// TODO log exception
return Task.FromResult(FormatResponce(_contingentContext, new List<SMResponceTemp>() { new SMResponceTemp() { rowguid_eais = doc.rowguid_eais, СерияДокумента = doc.document_seria, НомерДокумента = doc.document_number } }));
return Task.FromResult(FormatResponce(_contingentContext, new SMResponceTemp() { rowguid_eais = doc.rowguid_eais, СерияДокумента = doc.document_seria, НомерДокумента = doc.document_number }));
}
}
......@@ -86,38 +87,36 @@ namespace SocialMinistryDataExchange.Model {
}
static List<SMResponce> FormatResponce(IContingentContext context, List<SMResponceTemp> records) {
List<SMResponce> responce = new();
foreach (SMResponceTemp record in records) {
var SMRecord = new SMResponce();
static SMResponce FormatResponce(IContingentContext context, SMResponceTemp record) {
SMResponce responce = new();
if (record.Личность != Guid.Empty) { // записи найдены
SMRecord.rowguid_eais = record.rowguid_eais;
SMRecord.TerritoryName = record.ТерриторияShortname;
SMRecord.PersonFamilyName = record.Фамилия;
SMRecord.PersonName = record.Имя;
SMRecord.PersonSurname = record.Отчество;
SMRecord.PersonBirthday = record.ДатаРождения;
SMRecord.PersonDocumentType = record.КодУдостоверяющегоДокумента == 12 || record.КодУдостоверяющегоДокумента == 13 || record.КодУдостоверяющегоДокумента == 21 ?
responce.rowguid_eais = record.rowguid_eais;
responce.TerritoryName = record.ТерриторияShortname;
responce.PersonFamilyName = record.Фамилия;
responce.PersonName = record.Имя;
responce.PersonSurname = record.Отчество;
responce.PersonBirthday = record.ДатаРождения;
responce.PersonDocumentType = record.КодУдостоверяющегоДокумента == 12 || record.КодУдостоверяющегоДокумента == 13 || record.КодУдостоверяющегоДокумента == 21 ?
"1"
: record.КодУдостоверяющегоДокумента == 11 || record.КодУдостоверяющегоДокумента == 31 ?
"2"
: String.Empty;
SMRecord.PersonDocumentSeria = record.СерияДокумента;
SMRecord.PersonDocumentNumber = record.НомерДокумента;
SMRecord.PersonDocumentDate = record.КогдаВыданДокумент;
SMRecord.PersonSnils = record.Снилс;
SMRecord.rowguid_contingent = record.Личность.ToString();
responce.PersonDocumentSeria = record.СерияДокумента;
responce.PersonDocumentNumber = record.НомерДокумента;
responce.PersonDocumentDate = record.КогдаВыданДокумент;
responce.PersonSnils = record.Снилс;
responce.rowguid_contingent = record.Личность.ToString();
SMRecord.Status = record.ПриказОтчисления == null ? record.ПриказЗачисления == null ? "3" : "1" : "2";
SMRecord.StatusDate = SMRecord.Status switch {
responce.Status = record.ПриказОтчисления == null ? record.ПриказЗачисления == null ? "3" : "1" : "2";
responce.StatusDate = responce.Status switch {
"1" => record.НачальнаяДата,
"2" => record.КонечнаяДата,
_ => DateTime.Now,
};
if (SMRecord.Status == "1") {
if (responce.Status == "1") {
SMRecord.FounderType = record.ВидУчредителяКод.ToString() ?? String.Empty;
SMRecord.OrganizationType = GetOrganizationType(context, record.ТипОрганизации).ToString() switch {
responce.FounderType = record.ВидУчредителяКод.ToString() ?? String.Empty;
responce.OrganizationType = GetOrganizationType(context, record.ТипОрганизации).ToString() switch {
"29025A0D-7C7F-457B-9E14-0A6C16CBF94D" => "1",
"CF85F418-FFAD-4C86-8937-B2D4FBF4B661" => "2",
"1EB33F46-5A7C-4117-97EB-D3DFE4C3A7B2" => "3",
......@@ -125,14 +124,14 @@ namespace SocialMinistryDataExchange.Model {
_ => "5",
};
SMRecord.EducationProgram = GetProgramType(context, record.ОбразовательнаяПрограммаТип).ToString() switch {
responce.EducationProgram = GetProgramType(context, record.ОбразовательнаяПрограммаТип).ToString() switch {
"5BE7BD7C-1202-45E2-8E9E-7247070EA7B6" => "1",
"C09D82B4-CC8D-4EB8-9703-C95AEA53E044" => "2",
"8E674FDF-32CF-4080-B062-85C41A067A6F" => "3",
_ => "4",
};
SMRecord.EducationForm = record.ФормаОбученияКод switch {
responce.EducationForm = record.ФормаОбученияКод switch {
11 => "1",
12 => "2",
13 => "3",
......@@ -144,47 +143,16 @@ namespace SocialMinistryDataExchange.Model {
}
else {
// записи не найдены
SMRecord.rowguid_eais = record.rowguid_eais;
SMRecord.PersonDocumentSeria = record.СерияДокумента;
SMRecord.PersonDocumentNumber = record.НомерДокумента;
SMRecord.Status = "3";
SMRecord.StatusDate = DateTime.Now;
}
responce.Add(SMRecord);
responce.rowguid_eais = record.rowguid_eais;
responce.PersonDocumentSeria = record.СерияДокумента;
responce.PersonDocumentNumber = record.НомерДокумента;
responce.Status = "3";
responce.StatusDate = DateTime.Now;
}
return responce;
}
//форма обучения в GetPersonByID не исправлена
public Task<List<SMResponce>> GetPersonByID(string ID) {
var records = _contingentContext.ЛичностьПодразделенияs.Where(persondepartment => persondepartment.Личность == new Guid(ID))
.Join(_contingentContext.Личностьs, persondepartment => persondepartment.Личность, person => person.PrimaryKey, (persondepartment, person) => new { persondepartment, person })
.Join(_contingentContext.Территорияs, up => up.person.ТерриторияФактическогоМестаЖительстваNew, location => location.PrimaryKey, (up, location) => new { up.persondepartment, up.person, location })
.Join(_contingentContext.ОбразовательнаяОрганизацияs, up => up.persondepartment.Организация, organization => organization.PrimaryKey, (up, organization) => new { up.persondepartment, up.person, up.location, organization })
.Join(_contingentContext.ВидУчредителяs, up => up.organization.ВидУчредителя, organizationfounder => organizationfounder.PrimaryKey, (up, organizationfounder) => new { up.persondepartment, up.person, up.location, up.organization, organizationfounder })
.Join(_contingentContext.ДокументЛичностиs, up => up.persondepartment.Личность, doc => doc.Личность, (up, doc) => new { up.persondepartment, up.person, up.location, up.organization, up.organizationfounder, doc })
.Join(_contingentContext.ВидУдостоверяющегоДокументаs, up => up.doc.ВидУдостоверяющегоДокумента, doctype => doctype.PrimaryKey, (up, doctype) => new { up.persondepartment, up.person, up.location, up.organization, up.organizationfounder, up.doc, doctype })
.Join(_contingentContext.ОбразовательнаяПрограммаОрганизацииs, up => up.organization.PrimaryKey, educationprogram => educationprogram.Организация, (up, educationprogram) => new { up.persondepartment, up.person, up.location, up.organization, up.organizationfounder, up.doc, up.doctype, educationprogram })
.Join(_contingentContext.ТипОбразовательнойПрограммыs, up => up.educationprogram.ТипОп, programtype => programtype.PrimaryKey, (up, programtype) => new { up.persondepartment, up.person, up.location, up.organization, up.organizationfounder, up.doc, up.doctype, up.educationprogram, programtype })
.Join(_contingentContext.ФормаОбученияs, up => up.programtype.Иерархия, eduform => eduform.Иерархия, (up, eduform) => new { up.persondepartment, up.person, up.location, up.organization, up.organizationfounder, up.doc, up.doctype, up.educationprogram, up.programtype, eduform })
.Select(result => new SMResponceTemp() {
Личность = result.persondepartment.Личность, ПриказЗачисления = result.persondepartment.ПриказЗачисления, ПриказОтчисления = result.persondepartment.ПриказОтчисления
, НачальнаяДата = result.persondepartment.НачальнаяДата, КонечнаяДата = result.persondepartment.КонечнаяДата, Подразделение = result.persondepartment.Подразделение
, Организация = result.persondepartment.Организация
, Имя = result.person.Имя, Отчество = result.person.Отчество, Фамилия = result.person.Фамилия, БезОтчества = result.person.БезОтчества, ДатаРождения = result.person.ДатаРождения
, ТерриторияФактическогоМестаЖительстваNew = result.person.ТерриторияФактическогоМестаЖительстваNew, Снилс = result.person.Снилс
, ТерриторияShortname = result.location.Наименование, ТипОрганизации = result.organization.ТипОрганизации, ПолноеНаименованиеОрганизации = result.organization.ПолноеНаименование, ВидУчредителя = result.organization.ВидУчредителя
, ВидУчредителяКод = result.organizationfounder.Код
, СерияДокумента = result.doc.СерияДокумента, НомерДокумента = result.doc.НомерДокумента, КогдаВыданДокумент = result.doc.КогдаВыданДокумент, ВидУдостоверяющегоДокумента = result.doc.ВидУдостоверяющегоДокумента
, НаименованиеУдостоверяющегоДокумента = result.doctype.Наименование, КодУдостоверяющегоДокумента = result.doctype.Код
, ОбразовательнаяПрограммаТип = result.educationprogram.ТипОп, ОбразовательнаяПрограммаКод = result.programtype.Код, ОбразовательнаяПрограммаИерархия = result.programtype.Иерархия
, ФормаОбученияНаименование = result.eduform.Наименование, ФормаОбученияКод = result.eduform.Код
, rowguid_eais = result.person.PrimaryKey.ToString()
}).ToList();
return Task.FromResult(FormatResponce(_contingentContext, records));
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment