/// <summary> /// The map op list type. /// </summary> /// <param name="statement"> /// The statement. /// </param> /// <param name="recordNumber"> /// The record Number. /// </param> /// <returns> /// The <see cref="RECType"/> . /// </returns> protected virtual OPType MapOpListType(StatementBatch statement, int recordNumber) { // Загрузка старых данных если требуется var statementChangeDates = LoadOldStatementData(statement); var optype = new OPType(); optype.N_REC = recordNumber.ToString(CultureInfo.InvariantCulture); optype.ID = statement.Id; optype.ISACTIVE = (statement.Version == statement.VersionExport && statement.IsActive) ? "1" : "0"; optype.VERSION = statement.VersionExport.ToString(CultureInfo.InvariantCulture); optype.NEED_NEW_POLICY = statement.AbsentPrevPolicy.HasValue ? statement.AbsentPrevPolicy.Value : false; // Данные об обращении в СМО optype.VIZIT = GetVizit(statement); // Данные о застрахованном лице optype.PERSON = GetPerson(statement); // Документы optype.DOC_LIST = new List <DocType>(); optype.DOC_LIST.Add(GetDocument(statement.DocumentUdl, DocumentCategory.Udl)); if (statement.DocumentRegistration != null && statement.DocumentUdl.Id != statement.DocumentRegistration.Id) { optype.DOC_LIST.Add(GetDocument(statement.DocumentRegistration, DocumentCategory.Registration)); } if (statement.ResidencyDocument != null) { optype.DOC_LIST.Add(GetDocument(statement.ResidencyDocument, DocumentCategory.Residency)); } // Адрес регистрации optype.ADDRES_G = GetAddress(statement.Address, statement.Kladr); // Адрес проживания if (statement.Address2 != null && statement.Address.Id != statement.Address2.Id) { optype.ADDRES_P = GetAddress(statement.Address2, statement.Kladr2); } // Событие страхования optype.INSURANCE = GetInsurance(statement); // Медиа optype.PERSONB = GetPersonBList(statement); // Изменения по версиям optype.STATEMENT_CHANGE = statementChangeDates != null && statementChangeDates.Count > 0 ? statementChangeDates.Select( x => new StatementChange { VERSION = x.Version.ToString( CultureInfo .InvariantCulture), FIELD = x.Field.Code, DATA = x.Datum }).ToList() : null; return(optype); }
/// <summary> /// The map rec list type. /// </summary> /// <param name="statement"> /// The statement. /// </param> /// <returns> /// The <see cref="RECType"/> . /// </returns> protected virtual RECType MapRecListType(StatementBatch statement) { // Загрузка старых данных если требуется var statementChangeDates = LoadOldStatementData(statement); var recType = new RECType(); recType.Id = statement.Id; recType.IsActive = (statement.Version == statement.VersionExport && statement.IsActive) ? "1" : "0"; recType.Version = statement.VersionExport.ToString(CultureInfo.InvariantCulture); recType.NeedNewPolicy = statement.AbsentPrevPolicy.HasValue ? statement.AbsentPrevPolicy.Value : false; // Данные об обращении в СМО recType.Vizit = GetVizit(statement); // Данные о застрахованном лице recType.Person = GetPerson(statement); // Документы recType.Doc = new List <DocType>(); recType.Doc.Add(GetDocument(statement.DocumentUdl, DocumentCategory.Udl)); if (statement.DocumentRegistration != null && statement.DocumentUdl.Id != statement.DocumentRegistration.Id) { recType.Doc.Add(GetDocument(statement.DocumentRegistration, DocumentCategory.Registration)); } if (statement.ResidencyDocument != null) { recType.Doc.Add(GetDocument(statement.ResidencyDocument, DocumentCategory.Residency)); } // Адрес регистрации recType.AddresG = GetAddress(statement.Address, statement.Kladr); // Адрес проживания if (statement.Address2 != null && statement.Address.Id != statement.Address2.Id) { recType.AddresP = GetAddress(statement.Address2, statement.Kladr2); } // Событие страхования recType.Insurance = GetInsurance(statement); // Медиа recType.PersonB = GetPersonBList(statement); // Изменения по версиям recType.StatementChange = statementChangeDates != null && statementChangeDates.Count > 0 ? statementChangeDates.Select( x => new StatementChange { VERSION = x.Version.ToString( CultureInfo .InvariantCulture), FIELD = x.Field.Code, DATA = x.Datum }).ToList() : null; return(recType); }
/// <summary> /// Загружает старые данные в завяление, если версия в батче и текущая версия не совпадают /// </summary> /// <param name="statement"> /// The statement. /// </param> /// <returns> /// The /// <see> /// <cref>IList</cref> /// </see> /// . /// </returns> protected IList <StatementChangeDate> LoadOldStatementData(StatementBatch statement) { if (statement.Version == statement.VersionExport) { return(null); } var session = ObjectFactory.GetInstance <ISessionFactory>().GetCurrentSession(); var oldDataList = session.QueryOver <StatementChangeDate>() .Where(x => x.Statement.Id == statement.Id && x.Version == statement.VersionExport) .List(); foreach (var oldData in oldDataList) { switch (oldData.Field.Id) { case TypeFields.Enp: statement.NumberPolicy = oldData.Datum; break; case TypeFields.FirstName: statement.InsuredPersonData.FirstName = oldData.Datum; break; case TypeFields.LastName: statement.InsuredPersonData.LastName = oldData.Datum; break; case TypeFields.MiddleName: statement.InsuredPersonData.MiddleName = oldData.Datum; break; case TypeFields.Birthday: DateTime birthday; if (DateTime.TryParse(oldData.Datum, out birthday)) { statement.InsuredPersonData.Birthday = birthday; } break; case TypeFields.Birthplace: statement.InsuredPersonData.Birthplace = oldData.Datum; break; case TypeFields.GenderId: int genderId; int.TryParse(oldData.Datum, out genderId); statement.InsuredPersonData.Gender = ObjectFactory.GetInstance <IConceptCacheManager>().GetById(genderId); break; case TypeFields.Snils: statement.InsuredPersonData.Snils = oldData.Datum; break; case TypeFields.DocumentTypeId: int docTypeId; int.TryParse(oldData.Datum, out docTypeId); statement.DocumentUdl.DocumentType = ObjectFactory.GetInstance <IConceptCacheManager>().GetById(docTypeId); break; case TypeFields.DocumentSeries: statement.DocumentUdl.Series = oldData.Datum; break; case TypeFields.DocumentNumber: statement.DocumentUdl.Number = oldData.Datum; break; } } return(oldDataList); }