Commit e036a20f by AlexNasyr

get person by document realized

parent 8fd42c96
...@@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore; ...@@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using SocialMinistryDataExchange.Model; using SocialMinistryDataExchange.Model;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text.Json;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace SocialMinistryDataExchange.Controllers { namespace SocialMinistryDataExchange.Controllers {
...@@ -15,15 +16,30 @@ namespace SocialMinistryDataExchange.Controllers { ...@@ -15,15 +16,30 @@ namespace SocialMinistryDataExchange.Controllers {
[HttpGet] [HttpGet]
[Route("[controller]/gettestperson")] [Route("[controller]/getpersonFixID")]
public async Task<List<SMResponce>> GetTestPerson() { public async Task<List<SMResponce>> GetPersonFixID() {
var result = await _context.GetPerson("27373577-4234-43B2-A969-8D95B9384171"); var result = await _context.GetPersonByID("27373577-4234-43B2-A969-8D95B9384171");
return result; return result;
} }
[HttpPost] [HttpPost]
[Route("[controller]/getpersonbyid/{PersonID}")] [Route("[controller]/getpersonByID/{PersonID}")]
public async Task<List<SMResponce>> GetPersonByID(string PersonID) { public async Task<List<SMResponce>> GetPersonByID(string PersonID) {
var result = await _context.GetPerson(PersonID); var result = await _context.GetPersonByID(PersonID);
return result;
}
[HttpGet]
[Route("[controller]/getpersonFixDoc")]
public async Task<List<SMResponce>> GetPersonFixDoc() {
var request = JsonSerializer.Serialize(new SMRequest() { rowguid_eais = "223322", document_seria = "1234", document_number = "123456" });
var result = await _context.GetPersonByDoc(request);
return result;
}
[HttpPost]
[Route("[controller]/getpersonByDoc/{Rowguid}/{Seria}/{Number}")]
//[Route("[controller]/getpersonByDoc/{q}")]
public async Task<List<SMResponce>> GetPersonFixDoc(string Rowguid, string Seria, string Number) {
var result = await _context.GetPersonByDoc(JsonSerializer.Serialize(new SMRequest() { rowguid_eais = Rowguid, document_seria = Seria, document_number = Number }));
return result; return result;
} }
} }
......
using System; using System;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text.Json;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Metadata;
...@@ -19,9 +20,27 @@ namespace SocialMinistryDataExchange.Model.DB.Center ...@@ -19,9 +20,27 @@ namespace SocialMinistryDataExchange.Model.DB.Center
} }
public Task<List<SMResponce>> GetPersonByDoc(string document) {
var doc = JsonSerializer.Deserialize<SMRequest>(document);
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.op.ТипОпNavigation.Иерархия, fo => fo.Иерархия, (up, fo) => new { up.pd, up.lp, up.op, fo })
.Select(result => new SMResponce() { rowguid_eais = doc.rowguid_eais
, СерияДокумента = result.pd.СерияДокумента, НомерДокумента = result.pd.НомерДокумента, КогдаВыданДокумент = result.pd.КогдаВыданДокумент, ВидУдостоверяющегоДокумента = result.pd.ВидУдостоверяющегоДокумента, НаименованиеУдостоверяющегоДокумента = result.pd.ВидУдостоверяющегоДокументаNavigation.Наименование, КодУдостоверяющегоДокумента = result.pd.ВидУдостоверяющегоДокументаNavigation.Код
, Личность = result.pd.Личность, Имя = result.pd.ЛичностьNavigation.Имя, Отчество = result.pd.ЛичностьNavigation.Отчество, БезОтчества = result.pd.ЛичностьNavigation.БезОтчества, Фамилия = result.pd.ЛичностьNavigation.Фамилия
, ДатаРождения = result.pd.ЛичностьNavigation.ДатаРождения, ТерриторияФактическогоМестаЖительстваNew = result.pd.ЛичностьNavigation.ТерриторияФактическогоМестаЖительстваNew, Снилс = result.pd.ЛичностьNavigation.Снилс
, ТерриторияShortname = result.pd.ЛичностьNavigation.ТерриторияФактическогоМестаЖительстваNewNavigation.ТерриторияNavigation.Наименование
, ПриказЗачисления = result.lp.ПриказЗачисления, ПриказОтчисления = result.lp.ПриказОтчисления, НачальнаяДата = result.lp.НачальнаяДата, КонечнаяДата = result.lp.КонечнаяДата, Подразделение = result.lp.Подразделение, Организация = result.lp.Организация
, ТипОрганизации = result.lp.ОрганизацияNavigation.ТипОрганизации, ПолноеНаименованиеОрганизации = result.lp.ОрганизацияNavigation.ПолноеНаименование, ВидУчредителя = result.lp.ОрганизацияNavigation.ВидУчредителя, ВидУчредителяКод = result.lp.ОрганизацияNavigation.ВидУчредителяNavigation.Код
, ОбразовательнаяПрограммаТип = result.op.ТипОп, ОбразовательнаяПрограммаКод = result.op.ТипОпNavigation.Код, ОбразовательнаяПрограммаИерархия = result.op.ТипОпNavigation.Иерархия, ФормаОбученияКод = result.fo.Код, ФормаОбученияНаименование = result.fo.Наименование
}).ToList();
return Task.FromResult(records);
}
public Task<List<SMResponce>> GetPerson(string ID) { public Task<List<SMResponce>> GetPersonByID(string ID) {
var persons = ЛичностьПодразделенияs.Where(persondepartment => persondepartment.Личность == new Guid(ID)) var records = ЛичностьПодразделенияs.Where(persondepartment => persondepartment.Личность == new Guid(ID))
.Join(Личностьs, persondepartment => persondepartment.Личность, person => person.PrimaryKey, (persondepartment, person) => new { persondepartment, person }) .Join(Личностьs, persondepartment => persondepartment.Личность, person => person.PrimaryKey, (persondepartment, person) => new { persondepartment, person })
.Join(Территорияs, up => up.person.ТерриторияФактическогоМестаЖительстваNew, location => location.PrimaryKey, (up, location) => new { up.persondepartment, up.person, location }) .Join(Территорияs, up => up.person.ТерриторияФактическогоМестаЖительстваNew, location => location.PrimaryKey, (up, location) => new { up.persondepartment, up.person, location })
.Join(ОбразовательнаяОрганизацияs, up => up.persondepartment.Организация, organization => organization.PrimaryKey, (up, organization) => new { up.persondepartment, up.person, up.location, organization }) .Join(ОбразовательнаяОрганизацияs, up => up.persondepartment.Организация, organization => organization.PrimaryKey, (up, organization) => new { up.persondepartment, up.person, up.location, organization })
...@@ -42,10 +61,13 @@ namespace SocialMinistryDataExchange.Model.DB.Center ...@@ -42,10 +61,13 @@ namespace SocialMinistryDataExchange.Model.DB.Center
, НаименованиеУдостоверяющегоДокумента = result.doctype.Наименование, КодУдостоверяющегоДокумента = result.doctype.Код , НаименованиеУдостоверяющегоДокумента = result.doctype.Наименование, КодУдостоверяющегоДокумента = result.doctype.Код
, ОбразовательнаяПрограммаТип = result.educationprogram.ТипОп, ОбразовательнаяПрограммаКод = result.programtype.Код, ОбразовательнаяПрограммаИерархия = result.programtype.Иерархия , ОбразовательнаяПрограммаТип = result.educationprogram.ТипОп, ОбразовательнаяПрограммаКод = result.programtype.Код, ОбразовательнаяПрограммаИерархия = result.programtype.Иерархия
, ФормаОбученияНаименование = result.eduform.Наименование, ФормаОбученияКод = result.eduform.Код , ФормаОбученияНаименование = result.eduform.Наименование, ФормаОбученияКод = result.eduform.Код
, rowguid_eais = result.person.PrimaryKey.ToString()
}).ToList(); }).ToList();
return Task.FromResult(persons); return Task.FromResult(records);
} }
public virtual DbSet<Addrobg59> Addrobg59s { get; set; } public virtual DbSet<Addrobg59> Addrobg59s { get; set; }
public virtual DbSet<Addrobg59new> Addrobg59news { get; set; } public virtual DbSet<Addrobg59new> Addrobg59news { get; set; }
public virtual DbSet<ApplicationLog> ApplicationLogs { get; set; } public virtual DbSet<ApplicationLog> ApplicationLogs { get; set; }
......
...@@ -16,6 +16,7 @@ namespace SocialMinistryDataExchange.Model { ...@@ -16,6 +16,7 @@ namespace SocialMinistryDataExchange.Model {
//DbSet<ТипОбразовательнойПрограммы> EducationProgramType { get; set; } //DbSet<ТипОбразовательнойПрограммы> EducationProgramType { get; set; }
//DbSet<ФормаОбучения> EducationForm { get; set; } //DbSet<ФормаОбучения> EducationForm { get; set; }
Task<List<SMResponce>> GetPerson(string ID); Task<List<SMResponce>> GetPersonByID(string ID);
Task<List<SMResponce>> GetPersonByDoc(string Document);
} }
} }
...@@ -1278,7 +1278,11 @@ namespace SocialMinistryDataExchange.Model { ...@@ -1278,7 +1278,11 @@ namespace SocialMinistryDataExchange.Model {
.HasConstraintName("ФормаОбучения_FФормаОбучения_0"); .HasConstraintName("ФормаОбучения_FФормаОбучения_0");
}); });
} }
public Task<List<SMResponce>> GetPerson(string ID) {
public Task<List<SMResponce>> GetPersonByDoc(string Document) {
throw new NotImplementedException();
}
public Task<List<SMResponce>> GetPersonByID(string ID) {
//var persons = Persons.Where(p => p.PrimaryKey == new Guid(ID)); //var persons = Persons.Where(p => p.PrimaryKey == new Guid(ID));
//var persons = PersonDepartments.Where(pd => pd.Личность == new Guid(ID)) //var persons = PersonDepartments.Where(pd => pd.Личность == new Guid(ID))
// .Join(Persons, pd => pd.Личность, p => p.PrimaryKey, (pd, p) => new { pd, p }) // .Join(Persons, pd => pd.Личность, p => p.PrimaryKey, (pd, p) => new { pd, p })
...@@ -1307,8 +1311,10 @@ namespace SocialMinistryDataExchange.Model { ...@@ -1307,8 +1311,10 @@ namespace SocialMinistryDataExchange.Model {
.Join(EducationPrograms, up => up.organization.PrimaryKey, educationprogram => educationprogram.Организация, (up, educationprogram) => new { up.persondepartment, up.person, up.location, up.organization, up.organizationfounder, up.doc, up.doctype, educationprogram }) .Join(EducationPrograms, up => up.organization.PrimaryKey, educationprogram => educationprogram.Организация, (up, educationprogram) => new { up.persondepartment, up.person, up.location, up.organization, up.organizationfounder, up.doc, up.doctype, educationprogram })
.Join(EducationProgramType, up => up.educationprogram.ТипОп, programtype => programtype.PrimaryKey, (up, programtype) => new { up.persondepartment, up.person, up.location, up.organization, up.organizationfounder, up.doc, up.doctype, up.educationprogram, programtype }) .Join(EducationProgramType, up => up.educationprogram.ТипОп, programtype => programtype.PrimaryKey, (up, programtype) => new { up.persondepartment, up.person, up.location, up.organization, up.organizationfounder, up.doc, up.doctype, up.educationprogram, programtype })
.Join(EducationForm, up => up.programtype.Иерархия, eduform => eduform.Иерархия, (up, eduform) => new { up.persondepartment, up.person, up.location, up.organization, up.organizationfounder, up.doc, up.doctype, up.educationprogram, up.programtype, eduform }) .Join(EducationForm, up => up.programtype.Иерархия, eduform => eduform.Иерархия, (up, eduform) => new { up.persondepartment, up.person, up.location, up.organization, up.organizationfounder, up.doc, up.doctype, up.educationprogram, up.programtype, eduform })
.Select(result => new SMResponce() { Личность = result.persondepartment.Личность, ПриказЗачисления = result.persondepartment.ПриказЗачисления, ПриказОтчисления = result.persondepartment.ПриказОтчисления, НачальнаяДата = result.persondepartment.НачальнаяДата, КонечнаяДата = result.persondepartment.КонечнаяДата .Select(result => new SMResponce() {
, Подразделение = result.persondepartment.Подразделение, Организация = result.persondepartment.Организация} Личность = result.persondepartment.Личность, ПриказЗачисления = result.persondepartment.ПриказЗачисления, ПриказОтчисления = result.persondepartment.ПриказОтчисления, НачальнаяДата = result.persondepartment.НачальнаяДата, КонечнаяДата = result.persondepartment.КонечнаяДата
, Подразделение = result.persondepartment.Подразделение, Организация = result.persondepartment.Организация
}
).ToList(); ).ToList();
return Task.FromResult(persons); return Task.FromResult(persons);
} }
......
using System; using System;
namespace SocialMinistryDataExchange.Model { namespace SocialMinistryDataExchange.Model {
public class SMRequest {
public string rowguid_eais { get; set; }
public string document_seria { get; set; }
public string document_number{ get; set; }
}
public class SMResponce { public class SMResponce {
public string rowguid_eais { get; set; }
public Guid Личность { get; set; } public Guid Личность { get; set; }
public Guid? ПриказЗачисления { get; set; } public Guid? ПриказЗачисления { get; set; }
...@@ -40,6 +46,5 @@ namespace SocialMinistryDataExchange.Model { ...@@ -40,6 +46,5 @@ namespace SocialMinistryDataExchange.Model {
public SMResponce() { public SMResponce() {
} }
} }
} }
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