Commit a6167d6f by AlexNasyr

person naming update realized

parent 1dfc487a
......@@ -43,7 +43,7 @@ namespace SocialMinistryDataExchange.Controllers {
PersonName = "Василий",
PersonSurname = "Алибабаевич",
PersonBirthday = DateTime.Parse("2015-01-01"),
PersonSnils = "12345678",
PersonSnils = "12345678901",
Territory = "Пермский ГО (г. Пермь)",
},
PersonOccupation = new SMPersonOccupationStatus()
......
using Microsoft.EntityFrameworkCore;
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;
#nullable disable
namespace SocialMinistryDataExchange.Model.Contingent.Center
{
public partial class Contingent_center_Context : DbContext, IContingentContext {
public Contingent_center_Context()
{
}
public Contingent_center_Context(DbContextOptions<Contingent_center_Context> options)
: base(options)
{
......
......@@ -20,6 +20,7 @@ namespace SocialMinistryDataExchange.Model {
DbSet<ТипОбразовательнойПрограммы> ТипОбразовательнойПрограммыs { get; set; }
DbSet<ФормаОбучения> ФормаОбученияs { get; set; }
DbSet<ТипОбразовательнойОрганизации> ТипОбразовательнойОрганизацииs { get; set; }
DbSet<ПодразделениеОбразовательнойОрганизации> ПодразделениеОбразовательнойОрганизацииs { get; set; }
}
}
......@@ -98,58 +98,32 @@ namespace SocialMinistryDataExchange.Model {
&& 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.PersonDocument.PersonDocumentSeria
, НомерДокумента = Person.Person.PersonDocument.PersonDocumentNumber
, КогдаВыданДокумент = pd.КогдаВыданДокумент
, ВидУдостоверяющегоДокумента = pd.ВидУдостоверяющегоДокумента
, НаименованиеУдостоверяющегоДокумента = pd.ВидУдостоверяющегоДокументаNavigation.Наименование
, КодУдостоверяющегоДокумента = pd.ВидУдостоверяющегоДокументаNavigation.Код
, СерияДокумента = Person.Person.PersonDocument.PersonDocumentSeria, НомерДокумента = Person.Person.PersonDocument.PersonDocumentNumber, КогдаВыданДокумент = pd.КогдаВыданДокумент
, ВидУдостоверяющегоДокумента = pd.ВидУдостоверяющегоДокумента, НаименованиеУдостоверяющегоДокумента = pd.ВидУдостоверяющегоДокументаNavigation.Наименование, КодУдостоверяющегоДокумента = pd.ВидУдостоверяющегоДокументаNavigation.Код
// Личность (Guid), Имя, Отчество, БезОтчества, Фамилия
, Личность = pd.Личность
, Имя = pd.ЛичностьNavigation.Имя
, Отчество = pd.ЛичностьNavigation.Отчество
, БезОтчества = pd.ЛичностьNavigation.БезОтчества != null
, Фамилия = pd.ЛичностьNavigation.Фамилия
, Личность = pd.Личность, Имя = pd.ЛичностьNavigation.Имя, Отчество = pd.ЛичностьNavigation.Отчество, БезОтчества = pd.ЛичностьNavigation.БезОтчества != null, Фамилия = pd.ЛичностьNavigation.Фамилия
// ДатаРождения, ТерриторияФактическогоМестаЖительстваNew (нигде не заполнено - null), Снилс
, ДатаРождения = pd.ЛичностьNavigation.ДатаРождения
, ТерриторияРегистрацииПоМестуЖительстваNew = pd.ЛичностьNavigation.ТерриторияРегистрацииПоМестуЖительстваNew
, Снилс = pd.ЛичностьNavigation.Снилс
, ДатаРождения = pd.ЛичностьNavigation.ДатаРождения, ТерриторияРегистрацииПоМестуЖительстваNew = pd.ЛичностьNavigation.ТерриторияРегистрацииПоМестуЖительстваNew, Снилс = pd.ЛичностьNavigation.Снилс
// ТерриторияShortname
, ТерриторияShortname = pd.ЛичностьNavigation.ТерриторияРегистрацииПоМестуЖительстваNewNavigation.ТерриторияNavigation.Наименование
// ПриказЗачисления, ПриказОтчисления, НачальнаяДата, КонечнаяДата, Подразделение (Guid), Организация (Guid)
, ПриказЗачисления = lp.ПриказЗачисления
, ПриказОтчисления = lp.ПриказОтчисления
, НачальнаяДата = lp.НачальнаяДата
, КонечнаяДата = lp.КонечнаяДата
, Подразделение = lp.Подразделение
, Организация = lp.Организация
, ПриказЗачисления = lp.ПриказЗачисления, ПриказОтчисления = lp.ПриказОтчисления, НачальнаяДата = lp.НачальнаяДата, КонечнаяДата = lp.КонечнаяДата, Подразделение = lp.Подразделение, Организация = lp.Организация
// ТипОрганизации, ТипОрганизацииКод,
// ТипОрганизацииНаименование
, ТипОрганизации = lp.ОрганизацияNavigation.ТипОрганизации
, ТипОрганизацииКод = lp.ОрганизацияNavigation.ТипОрганизацииNavigation.Код
, ТипОрганизацииНаименование = lp.ОрганизацияNavigation.ТипОрганизацииNavigation.Наименование
, ТипОрганизации = lp.ОрганизацияNavigation.ТипОрганизации, ТипОрганизацииКод = lp.ОрганизацияNavigation.ТипОрганизацииNavigation.Код, ТипОрганизацииНаименование = lp.ОрганизацияNavigation.ТипОрганизацииNavigation.Наименование
// ПолноеНаименованиеОрганизации, ВидУчредителя (Guid), ВидУчредителяКод
, ПолноеНаименованиеОрганизации = lp.ОрганизацияNavigation.ПолноеНаименование
, ВидУчредителя = lp.ОрганизацияNavigation.ВидУчредителя
, ВидУчредителяКод = lp.ОрганизацияNavigation.ВидУчредителяNavigation.Код
, ПолноеНаименованиеОрганизации = lp.ОрганизацияNavigation.ПолноеНаименование, ВидУчредителя = lp.ОрганизацияNavigation.ВидУчредителя, ВидУчредителяКод = lp.ОрганизацияNavigation.ВидУчредителяNavigation.Код
// ОбразовательнаяПрограммаТип (Guid), ОбразовательнаяПрограммаКод
, ОбразовательнаяПрограммаТип = op.ТипОп
, ОбразовательнаяПрограммаКод = op.ТипОпNavigation.Код
, ОбразовательнаяПрограммаТип = lp.ПодразделениеNavigation.ТипОп, ОбразовательнаяПрограммаКод = lp.ПодразделениеNavigation.ТипОпNavigation.Код
// ФормаОбученияКод, ФормаОбученияНаименование
, ФормаОбученияКод = cp.ФормаОбученияNavigation.Код
, ФормаОбученияНаименование = cp.ФормаОбученияNavigation.Наименование
, ФормаОбученияКод = lp.ПодразделениеNavigation.ФормаОбученияNavigation.Код, ФормаОбученияНаименование = lp.ПодразделениеNavigation.ФормаОбученияNavigation.Наименование
}).First();
if (person_record.Фамилия != Person.Person.PersonFamilyName || person_record.Имя != Person.Person.PersonName
|| (person_record.БезОтчества == true & person_record.Отчество != Person.Person.PersonSurname
|| person_record.ДатаРождения != Person.Person.PersonBirthday)) {
......@@ -164,22 +138,26 @@ namespace SocialMinistryDataExchange.Model {
// если ошибок нет или msg.priority = force дозополняем у себя данные
if (string.IsNullOrEmpty(Person.Person.Error) || Priority == "force") {
person_record.Фамилия = Person.Person.PersonFamilyName;
person_record.Имя = Person.Person.PersonName;
person_record.Отчество = Person.Person.PersonSurname;
person_record.БезОтчества = string.IsNullOrEmpty(person_record.Отчество);
person_record.ДатаРождения = Person.Person.PersonBirthday;
person_record.СерияДокумента = Person.Person.PersonDocument.PersonDocumentSeria;
person_record.НомерДокумента = Person.Person.PersonDocument.PersonDocumentNumber;
person_record.КогдаВыданДокумент = Person.Person.PersonDocument.PersonDocumentDate;
// TODO вид удостоверяющего документа
person_record.ТерриторияРегистрацииПоМестуЖительстваNew = GetTeritory(_contingentContext, Person.Person.Territory);
person_record.Снилс = String.IsNullOrEmpty(Person.Person.PersonSnils) ? person_record.Снилс : Person.Person.PersonSnils;
//_contingentContext.SaveChanges();
int a = (_contingentContext as DbContext).SaveChanges();
// для записи личных данных
var person_naming = (from p in _contingentContext.Личностьs where p.PrimaryKey == person_record.Личность select p).First();
person_naming.Снилс = Person.Person.PersonSnils;
person_naming.Фамилия = Person.Person.PersonFamilyName;
person_naming.Имя = Person.Person.PersonName;
person_naming.Отчество = Person.Person.PersonSurname;
person_naming.БезОтчества = string.IsNullOrEmpty(person_naming.Отчество);
person_naming.ДатаРождения = Person.Person.PersonBirthday;
//person_temp.ТерриторияРегистрацииПоМестуЖительстваNew = person_record.ТерриторияРегистрацииПоМестуЖительстваNew;
//Person.Person.PersonAddress = String.IsNullOrEmpty(person_record.ТерриторияShortname) ? Person.Person.PersonAddress : person_record.ТерриторияShortname;
// для записи документа личности
//var person_identity = (from l in _contingentContext.ДокументЛичностиs where l.Личность == person_record.Личность orderby l.КогдаВыданДокумент descending select l).First();
//person_identity.СерияДокумента = Person.Person.PersonDocument.PersonDocumentSeria;
//person_identity.НомерДокумента = Person.Person.PersonDocument.PersonDocumentNumber;
//person_identity.КогдаВыданДокумент = Person.Person.PersonDocument.PersonDocumentDate;
int a = (_contingentContext as DbContext).SaveChanges();
}
else {
Person.Person.PersonFamilyName = person_record.Фамилия;
Person.Person.PersonName = person_record.Имя;
Person.Person.PersonSurname = person_record.Отчество;
......@@ -187,10 +165,11 @@ namespace SocialMinistryDataExchange.Model {
Person.Person.PersonDocument.PersonDocumentSeria = person_record.СерияДокумента;
Person.Person.PersonDocument.PersonDocumentNumber = person_record.НомерДокумента;
Person.Person.PersonDocument.PersonDocumentDate = person_record.КогдаВыданДокумент;
Person.Person.PersonSnils = String.IsNullOrEmpty(person_record.Снилс) ? Person.Person.PersonSnils : person_record.Снилс;
}
Person.Person.PersonDocument.PersonDocumentType = person_record.КодУдостоверяющегоДокумента == 12 || person_record.КодУдостоверяющегоДокумента == 13 || person_record.КодУдостоверяющегоДокумента == 21 ? 1
: person_record.КодУдостоверяющегоДокумента == 11 || person_record.КодУдостоверяющегоДокумента == 31 ? 2 : 99;
Person.Person.PersonSnils = String.IsNullOrEmpty(person_record.Снилс) ? Person.Person.PersonSnils : person_record.Снилс;
Person.Person.PersonAddress = String.IsNullOrEmpty(person_record.ТерриторияShortname) ? Person.Person.PersonAddress : person_record.ТерриторияShortname;
if (string.IsNullOrEmpty(Person.Person.Error)) {
Person.Person.rowguid_contingent = person_record.Личность.ToString();
......@@ -212,8 +191,7 @@ namespace SocialMinistryDataExchange.Model {
_ => "5",
};
//Person.PersonOccupation.EducationProgram = GetProgramType(_contingentContext, person_record.op.ТипОп).ToString() switch {
Person.PersonOccupation.EducationProgram = GetProgramType(_contingentContext, GetEducationProgram(_contingentContext, person_record.Организация)).ToString() switch {
Person.PersonOccupation.EducationProgram = GetProgramType(_contingentContext, person_record.ОбразовательнаяПрограммаТип).ToString().ToUpper() switch {
"5BE7BD7C-1202-45E2-8E9E-7247070EA7B6" => "1",
"C09D82B4-CC8D-4EB8-9703-C95AEA53E044" => "2",
"8E674FDF-32CF-4080-B062-85C41A067A6F" => "3",
......@@ -231,23 +209,26 @@ namespace SocialMinistryDataExchange.Model {
}
}
}
catch (TimeoutException ex) {
Person.Person.Error += "DB Error; ";
_logger.Error($"'{{@Module}}' '{{@Error}}': {{@Trace}};", "TryFillPersonStatus: ",ex.Message, ex.StackTrace);
}
catch (Exception ex) {
Person.Person.Error += "Person not found;";
Person.Person.Error += "Person not found; ";
_logger.Error($"Person '{{@Error}}': {{@Person}};", "TryFillPersonStatus: ", Person.Person);
}
}
private static Guid? GetEducationProgram(IContingentContext context, Guid? organization) {
if (organization == null) {
private static Guid? GetTeritory(IContingentContext context, ILogger _logger, string address) {
Guid? territory = null;
if (string.IsNullOrEmpty(address)) {
return null;
}
var educationProgrammType = (from oep in context.ОбразовательнаяПрограммаОрганизацииs where oep.Организация == organization select oep.ТипОп).First();
return educationProgrammType;
try {
territory = (from terr in context.Территорияs where terr.Наименование.Contains(address) select terr.PrimaryKey).First();
}
private static Guid? GetTeritory(IContingentContext context, string address) {
if (string.IsNullOrEmpty(address)) {
return null;
catch (Exception ex) {
_logger.Error($"'{{@Module}}' '{{@Error}}': {{@Trace}};", "GetTeritory: ", ex.Message, ex.StackTrace);
}
var territory = (from terr in context.Территорияs where terr.Наименование.Contains(address) select terr.PrimaryKey).First();
return territory;
}
private static Guid? GetOrganizationType(IContingentContext context, Guid? OrgTypeUid) {
......
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