Commit 1dfc487a by Alex Nasyr

Все сломалось. аминь

parent 3f018f22
......@@ -10,7 +10,6 @@ namespace SocialMinistryDataExchange.Model.Contingent.Center
public Contingent_center_Context()
{
}
public Contingent_center_Context(DbContextOptions<Contingent_center_Context> options)
: base(options)
{
......
......@@ -8,15 +8,18 @@ using System.Xml.Serialization;
using SocialMinistryDataExchange.Model.EscpSD;
using System.IO;
using Microsoft.EntityFrameworkCore;
using SocialMinistryDataExchange.Model.Contingent.Center;
namespace SocialMinistryDataExchange.Model {
public class SMRepository : ISMRepository {
//private readonly Contingent_center_Context _contingentContext;
private readonly IContingentContext _contingentContext;
private readonly ILogger _logger;
public SMRepository() {
}
public SMRepository(IContingentContext contingentContext, ILogger logger) {
//public SMRepository(Contingent_center_Context contingentContext, ILogger logger) {
_contingentContext = contingentContext;
_logger = logger;
}
......@@ -87,10 +90,12 @@ namespace SocialMinistryDataExchange.Model {
private void TryFillPersonStatus(SMPersonDataOccupationMessage Person, string Priority) {
try {
var person_record = (from pd in _contingentContext.ДокументЛичностиs
where pd.СерияДокумента.Contains(Person.Person.PersonDocument.PersonDocumentSeria) && pd.НомерДокумента.Contains(Person.Person.PersonDocument.PersonDocumentNumber)
&& pd.ЛичностьNavigation.Фамилия.Contains(Person.Person.PersonFamilyName) && pd.ЛичностьNavigation.Имя.Contains(Person.Person.PersonName)
&& ((pd.ЛичностьNavigation.БезОтчества == null || pd.ЛичностьNavigation.БезОтчества == false) & pd.ЛичностьNavigation.Отчество.Contains(Person.Person.PersonSurname))
&& pd.ЛичностьNavigation.ДатаРождения == Person.Person.PersonBirthday
where pd.СерияДокумента.Contains(Person.Person.PersonDocument.PersonDocumentSeria)
&& pd.НомерДокумента.Contains(Person.Person.PersonDocument.PersonDocumentNumber)
&& pd.ЛичностьNavigation.Фамилия.Contains(Person.Person.PersonFamilyName)
&& pd.ЛичностьNavigation.Имя.Contains(Person.Person.PersonName)
&& ((pd.ЛичностьNavigation.БезОтчества == null || 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
......@@ -100,30 +105,51 @@ namespace SocialMinistryDataExchange.Model {
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.Код
// Личность (Guid), Имя, Отчество, БезОтчества, Фамилия
, Личность = pd.Личность, Имя = pd.ЛичностьNavigation.Имя, Отчество = pd.ЛичностьNavigation.Отчество, БезОтчества = pd.ЛичностьNavigation.БезОтчества != null, Фамилия = 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.Наименование
// СерияДокумента, НомерДокумента, КогдаВыданДокумент, ВидУдостоверяющегоДокумента,
// НаименованиеУдостоверяющегоДокумента, КодУдостоверяющегоДокумента
, СерияДокумента = 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.Фамилия
// ДатаРождения, ТерриторияФактическогоМестаЖительства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.БезОтчества == true & person_record.Отчество != Person.Person.PersonSurname
|| person_record.ДатаРождения != Person.Person.PersonBirthday)) {
......@@ -148,9 +174,11 @@ namespace SocialMinistryDataExchange.Model {
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;
int a =(_contingentContext as DbContext).SaveChanges();
int b = ((DbContext)_contingentContext).SaveChanges(true);
person_record.Снилс = String.IsNullOrEmpty(Person.Person.PersonSnils) ? person_record.Снилс : Person.Person.PersonSnils;
//_contingentContext.SaveChanges();
int a = (_contingentContext as DbContext).SaveChanges();
}
Person.Person.PersonFamilyName = person_record.Фамилия;
Person.Person.PersonName = person_record.Имя;
......@@ -184,7 +212,8 @@ namespace SocialMinistryDataExchange.Model {
_ => "5",
};
Person.PersonOccupation.EducationProgram = GetProgramType(_contingentContext, person_record.ОбразовательнаяПрограммаТип).ToString() switch {
//Person.PersonOccupation.EducationProgram = GetProgramType(_contingentContext, person_record.op.ТипОп).ToString() switch {
Person.PersonOccupation.EducationProgram = GetProgramType(_contingentContext, GetEducationProgram(_contingentContext, person_record.Организация)).ToString() switch {
"5BE7BD7C-1202-45E2-8E9E-7247070EA7B6" => "1",
"C09D82B4-CC8D-4EB8-9703-C95AEA53E044" => "2",
"8E674FDF-32CF-4080-B062-85C41A067A6F" => "3",
......@@ -207,6 +236,13 @@ namespace SocialMinistryDataExchange.Model {
_logger.Error($"Person '{{@Error}}': {{@Person}};", "TryFillPersonStatus: ", Person.Person);
}
}
private static Guid? GetEducationProgram(IContingentContext context, Guid? organization) {
if (organization == null) {
return null;
}
var educationProgrammType = (from oep in context.ОбразовательнаяПрограммаОрганизацииs where oep.Организация == organization select oep.ТипОп).First();
return educationProgrammType;
}
private static Guid? GetTeritory(IContingentContext context, string address) {
if (string.IsNullOrEmpty(address)) {
return null;
......@@ -242,17 +278,17 @@ namespace SocialMinistryDataExchange.Model {
SMData responce_record;
foreach (var doc in docs.MsgData) {
try {
if (doc.Person.PersonDocument.PersonDocumentSeria is null || doc.Person.PersonDocument.PersonDocumentNumber is null || doc.Person.PersonFamilyName is null || doc.Person.PersonName is null || doc.Person.PersonBirthday is null) {
throw new ArgumentNullException($"{nameof(doc.Person)}");
}
//if (doc.Person.PersonDocument.PersonDocumentSeria is null || doc.Person.PersonDocument.PersonDocumentNumber is null || doc.Person.PersonFamilyName is null || doc.Person.PersonName is null || doc.Person.PersonBirthday is null) {
// throw new ArgumentNullException($"{nameof(doc.Person)}");
//}
responce_record = new SMData();
var record = (from pd in _contingentContext.ДокументЛичностиs
where pd.СерияДокумента == doc.Person.PersonDocument.PersonDocumentSeria && pd.НомерДокумента == doc.Person.PersonDocument.PersonDocumentNumber
&& pd.ЛичностьNavigation.Фамилия == doc.Person.PersonFamilyName && pd.ЛичностьNavigation.Имя == doc.Person.PersonName
&& (pd.ЛичностьNavigation.БезОтчества == false & pd.ЛичностьNavigation.Отчество == doc.Person.PersonSurname)
&& pd.ЛичностьNavigation.ДатаРождения == doc.Person.PersonBirthday
//&& pd.ЛичностьNavigation.Фамилия == doc.Person.PersonFamilyName && pd.ЛичностьNavigation.Имя == doc.Person.PersonName
//&& (pd.ЛичностьNavigation.БезОтчества == false & pd.ЛичностьNavigation.Отчество == doc.Person.PersonSurname)
//&& pd.ЛичностьNavigation.ДатаРождения == doc.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
......
......@@ -23,7 +23,6 @@ namespace SocialMinistryDataExchange {
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services) {
var ConnectionString = Configuration.GetConnectionString("_center");
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
......
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