Commit a6167d6f by AlexNasyr

person naming update realized

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