Commit 8c1f9707 by AlexNasyr

org & prog Types translation added

parent 928ce71b
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
......@@ -13,7 +13,7 @@ namespace SocialMinistryDataExchange.Model.DB.Center {
public Task<List<SMResponce>> GetPersonByDoc(string document) {
var doc = JsonSerializer.Deserialize<SMRequest>(document);
try {
var t = (from pd in ДокументЛичностиs where pd.СерияДокумента == doc.document_seria && pd.НомерДокумента == doc.document_number
var records = (from pd in ДокументЛичностиs where pd.СерияДокумента == doc.document_seria && pd.НомерДокумента == doc.document_number
join lp in ЛичностьПодразделенияs on pd.Личность equals lp.Личность into lps
from lp in lps.DefaultIfEmpty()
join op in ОбразовательнаяПрограммаОрганизацииs on lp.Организация equals op.Организация into ops
......@@ -43,47 +43,39 @@ namespace SocialMinistryDataExchange.Model.DB.Center {
, ФормаОбученияКод = cp.ФормаОбученияNavigation.Код, ФормаОбученияНаименование = cp.ФормаОбученияNavigation.Наименование
}).ToList();
//var records = ДокументЛичностиs.Where(pd => (pd.СерияДокумента == doc.document_seria) && (pd.НомерДокумента == doc.document_number))
// .Join(ЛичностьПодразделенияs, pd => pd.Личность, lp => lp.Личность, (pd, lp) => new { pd, lp })
// .Join(ОбразовательнаяПрограммаОрганизацииs, up => up.lp.ОрганизацияNavigation.PrimaryKey, op => op.Организация, (up, op) => new { up.pd, up.lp, op })
// .Join(ТекущаяЛичностьПодразделенияs, up => up.pd.Личность, cp => cp.Личность, (up, cp) => new { up.pd, up.lp, up.op, cp })
// .Select(result => new SMResponceTemp() {
// rowguid_eais = doc.rowguid_eais
// // СерияДокумента, НомерДокумента, КогдаВыданДокумент, ВидУдостоверяющегоДокумента, НаименованиеУдостоверяющегоДокумента, КодУдостоверяющегоДокумента
// , СерияДокумента = doc.document_seria, НомерДокумента = doc.document_number, КогдаВыданДокумент = result.pd.КогдаВыданДокумент, ВидУдостоверяющегоДокумента = result.pd.ВидУдостоверяющегоДокумента, НаименованиеУдостоверяющегоДокумента = result.pd.ВидУдостоверяющегоДокументаNavigation.Наименование, КодУдостоверяющегоДокумента = result.pd.ВидУдостоверяющегоДокументаNavigation.Код
// // Личность (Guid), Имя, Отчество, БезОтчества, Фамилия
// , Личность = result.pd.Личность, Имя = result.pd.ЛичностьNavigation.Имя, Отчество = result.pd.ЛичностьNavigation.Отчество, БезОтчества = result.pd.ЛичностьNavigation.БезОтчества, Фамилия = result.pd.ЛичностьNavigation.Фамилия
// // ДатаРождения, ТерриторияФактическогоМестаЖительстваNew (нигде не заполнено - null), Снилс
// , ДатаРождения = result.pd.ЛичностьNavigation.ДатаРождения, ТерриторияФактическогоМестаЖительстваNew = result.pd.ЛичностьNavigation.ТерриторияФактическогоМестаЖительстваNew, Снилс = result.pd.ЛичностьNavigation.Снилс
// // ТерриторияShortname
// , ТерриторияShortname = result.pd.ЛичностьNavigation.ТерриторияФактическогоМестаЖительстваNewNavigation.ТерриторияNavigation.Наименование
// // ПриказЗачисления, ПриказОтчисления, НачальнаяДата, КонечнаяДата, Подразделение (Guid), Организация (Guid)
// , ПриказЗачисления = result.lp.ПриказЗачисления, ПриказОтчисления = result.lp.ПриказОтчисления, НачальнаяДата = result.lp.НачальнаяДата, КонечнаяДата = result.lp.КонечнаяДата, Подразделение = result.lp.Подразделение, Организация = result.lp.Организация
// // ТипОрганизации, ТипОрганизацииКод, ТипОрганизацииНаименование
// , ТипОрганизации = result.lp.ОрганизацияNavigation.ТипОрганизации, ТипОрганизацииКод = result.lp.ОрганизацияNavigation.ТипОрганизацииNavigation.Код, ТипОрганизацииНаименование = result.lp.ОрганизацияNavigation.ТипОрганизацииNavigation.Наименование
// // ПолноеНаименованиеОрганизации, ВидУчредителя (Guid), ВидУчредителяКод
// , ПолноеНаименованиеОрганизации = result.lp.ОрганизацияNavigation.ПолноеНаименование, ВидУчредителя = result.lp.ОрганизацияNavigation.ВидУчредителя, ВидУчредителяКод = result.lp.ОрганизацияNavigation.ВидУчредителяNavigation.Код
// // ОбразовательнаяПрограммаТип (Guid), ОбразовательнаяПрограммаКод
// , ОбразовательнаяПрограммаТип = result.op.ТипОп, ОбразовательнаяПрограммаКод = result.op.ТипОпNavigation.Код
// // ФормаОбученияКод, ФормаОбученияНаименование
// , ФормаОбученияКод = result.cp.ФормаОбученияNavigation.Код, ФормаОбученияНаименование = result.cp.ФормаОбученияNavigation.Наименование
// }).ToList();
//return Task.FromResult(FormatResponce(records));
return Task.FromResult(FormatResponce(t));
return Task.FromResult(FormatResponce(this, records));
}
catch(Exception ex){
catch (Exception ex) {
// TODO log exception
return Task.FromResult(FormatResponce(new List<SMResponceTemp>() { new SMResponceTemp() { rowguid_eais = doc.rowguid_eais, СерияДокумента = doc.document_seria, НомерДокумента = doc.document_number } }));
return Task.FromResult(FormatResponce(this, new List<SMResponceTemp>() { new SMResponceTemp() { rowguid_eais = doc.rowguid_eais, СерияДокумента = doc.document_seria, НомерДокумента = doc.document_number } }));
}
}
static Guid? GetOrganizationType(Контингент_center_Context context, Guid? OrgTypeUid) {
if (OrgTypeUid == null) {
return null;
}
var type = (from too in context.ТипОбразовательнойОрганизацииs where too.PrimaryKey == OrgTypeUid select too).First();
return type.Иерархия == null ? type.PrimaryKey : GetOrganizationType(context, type.Иерархия);
}
static Guid? GetProgramType(Контингент_center_Context context, Guid? ProgramTypeUid) {
if (ProgramTypeUid == null) {
return null;
}
// выделяем ДОШКОЛЬНУЮ в отдельный тип
if (ProgramTypeUid.ToString() == "5BE7BD7C-1202-45E2-8E9E-7247070EA7B6") {
return ProgramTypeUid;
}
private static List<SMResponce> FormatResponce(List<SMResponceTemp> records) {
var type = (from opt in context.ТипОбразовательнойПрограммыs where opt.PrimaryKey == ProgramTypeUid select opt).First();
return type.Иерархия == null ? type.PrimaryKey : GetProgramType(context, type.Иерархия);
}
private static List<SMResponce> FormatResponce(Контингент_center_Context context, List<SMResponceTemp> records) {
List<SMResponce> responce = new();
foreach (SMResponceTemp record in records) {
var SMRecord = new SMResponce();
if (record.Личность != Guid.Empty) { // записи найдены ??? null ???
if (record.Личность != Guid.Empty) { // записи найдены
SMRecord.rowguid_eais = record.rowguid_eais;
SMRecord.TerritoryName = record.ТерриторияShortname;
SMRecord.PersonFamilyName = record.Фамилия;
......@@ -108,11 +100,31 @@ namespace SocialMinistryDataExchange.Model.DB.Center {
_ => DateTime.Now,
};
if (SMRecord.Status == "1") {
// TODO перевести внутренние коды ко внешним
SMRecord.FounderType = record.ВидУчредителяКод.ToString() ?? String.Empty;
SMRecord.OrganizationType = record.ТипОрганизацииКод.ToString() ?? String.Empty;
SMRecord.EducationProgram = record.ОбразовательнаяПрограммаКод.ToString() ?? String.Empty;
SMRecord.EducationForm = record.ФормаОбученияКод.ToString() ?? String.Empty;
SMRecord.OrganizationType = GetOrganizationType(context, record.ТипОрганизации).ToString() switch {
"29025A0D-7C7F-457B-9E14-0A6C16CBF94D" => "1",
"CF85F418-FFAD-4C86-8937-B2D4FBF4B661" => "2",
"1EB33F46-5A7C-4117-97EB-D3DFE4C3A7B2" => "3",
"BB88E168-D124-462B-8870-2D9A35755561" => "4",
_ => "5",
};
SMRecord.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 {
11 => "1",
12 => "2",
13 => "3",
21 => "4",
22 => "5",
_ => String.Empty
};
}
}
else {
......@@ -154,7 +166,7 @@ namespace SocialMinistryDataExchange.Model.DB.Center {
, ФормаОбученияНаименование = result.eduform.Наименование, ФормаОбученияКод = result.eduform.Код
, rowguid_eais = result.person.PrimaryKey.ToString()
}).ToList();
return Task.FromResult(FormatResponce(records));
return Task.FromResult(FormatResponce(this, records));
}
public Контингент_center_Context() {
......
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