Commit 54856aa9 by Alex Nasyr

temp

parent 6dc56ee3
......@@ -27,6 +27,7 @@ namespace SocialMinistryDataExchange.Controllers {
rowguid_eais = "223322",
PersonDocumentSeria = "V-II",
PersonDocumentNumber = "123456",
PersonDocumentDate = DateTime.Parse("2010-01-01"),
PersonFamilyName = "Мкртчян",
PersonName = "Василий",
PersonSurname = "Алибабаевич",
......
......@@ -2,6 +2,16 @@
namespace SocialMinistryDataExchange.Model {
[Flags]
enum PersonSearchAttributes : byte {
PersonDocumentSeria = 1,
PersonDocumentNumber = 2,
PersonDocumentDate = 4,
PersonFamilyName = 8,
PersonName = 16,
PersonBirthday = 32,
}
public class SMData {
public SMData() { }
public string rowguid_eais { get; set; }
......@@ -23,17 +33,6 @@ namespace SocialMinistryDataExchange.Model {
public string EducationProgram { get; set; }
public string EducationForm { get; set; }
}
[Flags]
enum PersonSearchAttributes : byte {
PersonDocumentSeria = 1,
PersonDocumentNumber = 2,
PersonFamilyName = 4,
PersonName = 8,
PersonBirthday = 16,
}
public class SMPersonRequest {
public string rowguid_eais { get; set; }
public string document_seria { get; set; }
......
......@@ -44,11 +44,11 @@ namespace SocialMinistryDataExchange.Model {
}
var z = (PersonSearchAttributes)x;
if (x < Enum.GetValues(typeof(PersonSearchAttributes)).Cast<byte>().Sum(s => s)) {
Person.Person.Error = $"Parameters: [{(PersonSearchAttributes)(31 - z)}] can't be null";
Person.Person.Error = $"Parameters: [{(PersonSearchAttributes)(31 - z)}] can't be null; ";
_logger.Error($"MsgID '{{@MsgID}}': {{@Error}};", Responce.MsgID, Person.Person.Error);
}
else {
// SearchPerson();
TryFillPersonStatus(Person);
}
}
}
......@@ -58,9 +58,66 @@ namespace SocialMinistryDataExchange.Model {
return Task.FromResult(Responce);
}
private void SearchPerson(Person person) {
private void TryFillPersonStatus(SMPersonDataOccupationMessage Person) {
var person_record = (from pd in _contingentContext.ДокументЛичностиs
where pd.СерияДокумента.Contains(Person.Person.PersonDocumentSeria) && pd.НомерДокумента.Contains(Person.Person.PersonDocumentNumber)
&& pd.ЛичностьNavigation.Фамилия.Contains(Person.Person.PersonFamilyName) && pd.ЛичностьNavigation.Имя.Contains(Person.Person.PersonName)
//&& (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
from lp in lps.DefaultIfEmpty()
join op in _contingentContext.ОбразовательнаяПрограммаОрганизацииs on lp.Организация equals op.Организация into ops
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 = Person.Person.rowguid_eais
// СерияДокумента, НомерДокумента, КогдаВыданДокумент, ВидУдостоверяющегоДокумента,
// НаименованиеУдостоверяющегоДокумента, КодУдостоверяющегоДокумента
, СерияДокумента = Person.Person.PersonDocumentSeria, НомерДокумента = Person.Person.PersonDocumentNumber, КогдаВыданДокумент = pd.КогдаВыданДокумент, ВидУдостоверяющегоДокумента = pd.ВидУдостоверяющегоДокумента
, НаименованиеУдостоверяющегоДокумента = pd.ВидУдостоверяющегоДокументаNavigation.Наименование, КодУдостоверяющегоДокумента = pd.ВидУдостоверяющегоДокументаNavigation.Код
// Личность (Guid), Имя, Отчество, БезОтчества, Фамилия
, Личность = pd.Личность, Имя = pd.ЛичностьNavigation.Имя, Отчество = pd.ЛичностьNavigation.Отчество, БезОтчества = pd.ЛичностьNavigation.БезОтчества, Фамилия = pd.ЛичностьNavigation.Фамилия
// ДатаРождения, ТерриторияФактическогоМестаЖительстваNew (нигде не заполнено - null), Снилс
, ДатаРождения = pd.ЛичностьNavigation.ДатаРождения, ТерриторияФактическогоМестаЖительстваNew = pd.ЛичностьNavigation.ТерриторияФактическогоМестаЖительстваNew, Снилс = pd.ЛичностьNavigation.Снилс
// ТерриторияShortname
, ТерриторияShortname = pd.ЛичностьNavigation.ТерриторияФактическогоМестаЖительстваNewNavigation.ТерриторияNavigation.Наименование
// ПриказЗачисления, ПриказОтчисления, НачальнаяДата, КонечнаяДата, Подразделение (Guid), Организация (Guid)
, ПриказЗачисления = 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();
if (person_record.Фамилия != Person.Person.PersonFamilyName || person_record.Имя != Person.Person.PersonName
|| (person_record.БезОтчества != false && person_record.Отчество != Person.Person.PersonSurname
|| person_record.ДатаРождения != Person.Person.PersonBirthday)) {
Person.Person.Error += "Personal information Error;";
_logger.Error($"Person '{{@Person}}': {{@Error}};", Person.Person, "Personal information Error");
Person.Person.PersonFamilyName = person_record.Фамилия;
Person.Person.PersonName = person_record.Имя;
Person.Person.PersonSurname = person_record.Отчество;
Person.Person.PersonBirthday = person_record.ДатаРождения;
}
if (person_record.СерияДокумента != Person.Person.PersonDocumentSeria || person_record.НомерДокумента != Person.Person.PersonDocumentNumber || person_record.КогдаВыданДокумент != Person.Person.PersonDocumentDate) {
Person.Person.Error += "Personal document Error;";
_logger.Error($"Person '{{@Person}}': {{@Error}};", Person.Person, "Personal document Error");
Person.Person.PersonDocumentSeria = person_record.СерияДокумента;
Person.Person.PersonDocumentNumber = person_record.НомерДокумента;
Person.Person.PersonDocumentDate = person_record.КогдаВыданДокумент;
}
if (string.IsNullOrEmpty(Person.Person.Error)) {
int i = 0;
}
}
public Task<List<SMData>> GetPersonByDoc(string document) {
var docs = JsonSerializer.Deserialize<SMPersonDataRequest>(document);
......@@ -68,7 +125,6 @@ namespace SocialMinistryDataExchange.Model {
SMData responce_record;
foreach (var doc in docs.MsgData) {
try {
// TODO separate exceptions
if (doc.Person.PersonDocumentSeria is null || doc.Person.PersonDocumentNumber is null || doc.Person.PersonFamilyName is null || doc.Person.PersonName is null || doc.Person.PersonBirthday is null) {
throw new ArgumentNullException($"{nameof(doc.Person)}");
}
......
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