public void GetKeysStringIEnumerableFull() { var list = new List <object> { g1, kg1, doft0, str1 }; string res = string.Join(",", list.Select(o => $"'{PKHelper.GetGuidByObject(o)}'")); Assert.Equal(res, PKHelper.GetKeysString(list)); }
/// <summary> /// Проверить и преобразовать аргумент в соответствии с типом. /// </summary> /// <param name="type">Тип.</param> /// <param name="value">Значение.</param> /// <exception cref="ArgumentException">Аргумент не содержит ключевой структуры.</exception> /// <exception cref="InvalidCastException">Не совпадают тип свойства и тип переданного параметра.</exception> /// <exception cref="FormatException"><seealso cref="M:Convert.ChangeType(object, Type)"/></exception> /// <returns>Преобразованный аргумент.</returns> internal static object ConvertValue(Type type, object value) { ValidateValue(value); var nctType = GetObjectType(type).NetCompatibilityType; var res = value; if (res.GetType().IsEnum) { if (nctType == typeof(string)) { res = EnumCaption.GetCaptionFor(res); } else if (nctType == typeof(decimal)) { res = Convert.ChangeType(res, nctType); } } if (IsKeyType(nctType)) { res = PKHelper.GetKeyByObject(res); if (res == null) { throw new ArgumentException(nameof(value)); } } ValidateValue(res); // Когда свойство строкового типа, а значение - не строка. if (nctType == typeof(string) && GetObjectType(res.GetType()).NetCompatibilityType != typeof(string)) { res = Convert.ToString(res); } if (GetObjectType(res.GetType()).NetCompatibilityType != nctType) { if (res.GetType().GetInterfaces().Any(x => x == typeof(IConvertible))) { // Попробуем преобразовать в нужный тип. res = Convert.ChangeType(res, type); } else { throw new InvalidCastException(nameof(value)); } } return(res); }
public override Territoriia Map(Territory source, Territoriia dest) { dest.__PrimaryKey = source.Guid; dest.KodFIAS = source.FIAS; dest.VidObekta = source.ObjectType; dest.Naimenovanie = source.Name; dest.PochtIndeks = source.PostIndex; if (source.Parent?.Guid != null) { dest.Ierarhiia = PKHelper.CreateDataObject <Territoriia>(source.Parent.Guid); } return(dest); }
public override Ulitca Map(Street source, Ulitca dest) { dest.__PrimaryKey = source.Guid; dest.KodFIAS = source.FIAS; dest.VidObekta = source.ObjectType; dest.Naimenovanie = source.Name; dest.PochtIndeks = source.PostIndex; if (source.Territory != null) { dest.Territoriia = PKHelper.CreateDataObject <Territoriia>(source.Territory.Guid); } return(dest); }
public void GetKeysIEnumerableIEnumerableMixedWithIEnumerable() { var listg = new List <Guid> { g1, g2 }; var listlistg = new List <List <Guid> > { listg, listg }; var listkg = new List <KeyGuid> { kg1, kg2 }; var listlistkg = new List <List <KeyGuid> > { listkg, listkg }; var liststr = new List <string> { str1, str2 }; var listliststr = new List <List <string> > { liststr, liststr }; var list = new List <object> { g1, kg1, doft0, str1 }; var listlist = new List <List <object> > { list, list }; Assert.Equal(PKHelper.GetKeys(listlist, listlistg, listlistkg, listliststr, list, listg, listkg, liststr).Length, 7); }
public override Territory Map(Territoriia source, Territory dest) { dest.Guid = PKHelper.GetGuidByObject(source).Value; dest.FIAS = source.KodFIAS; dest.ObjectType = source.VidObekta; if (source.Naimenovanie?.Length > 255) { throw new ArgumentOutOfRangeException($"{nameof(source.Naimenovanie)} more than 255 symbols!"); } dest.Name = source.Naimenovanie; dest.PostIndex = source.PochtIndeks; return(dest); }
public override Benefit Map(Lgota source, Benefit dest) { if (!PKHelper.GetGuidByObject(source).HasValue) { throw new ArgumentNullException(nameof(source)); } dest.Guid = PKHelper.GetGuidByObject(source).Value; dest.Id = source.Oldid; dest.Name = source.Naimenovanie; switch (source.VclVSotcPaket) { case tLogicheskii.Net: dest.InSocialPackage = tBool.Нет; break; case tLogicheskii.Da: dest.InSocialPackage = tBool.Да; break; } dest.CodeIncome = source.KodDohoda; dest.TaxedNDFL = source.OblagNDFL == tLogicheskii.Da ? tBool.Да : tBool.Нет; dest.TaxedESN = source.OblagESN == tLogicheskii.Da ? tBool.Да : tBool.Нет; if (source.Ierarhiia != null) { dest.Parent = new SyncXMLDataObject() { Guid = PKHelper.GetGuidByObject(source.Ierarhiia).Value }; } if (source.Tip != null) { dest.TypeBenefit = new SyncXMLDataObject() { Guid = PKHelper.GetGuidByObject(source.Tip).Value }; } dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public void GetKeysIEnumerableIEnumerableKeyGuid() { var list = new List <KeyGuid> { kg1, kg2 }; var listlist = new List <List <KeyGuid> > { list, list }; Assert.Equal(PKHelper.GetKeys(listlist).Length, 2); }
public void GetKeysIEnumerableIEnumerableString() { var list = new List <string> { str1, str2 }; var listlist = new List <List <string> > { list, list }; Assert.Equal(PKHelper.GetKeys(listlist).Length, 2); }
public override Prozhivanie Map(Location source, Prozhivanie dest) { dest.__PrimaryKey = source.Guid; dest.NomerDoma = source.Number; dest.Kvartira = source.Appartment; dest.NomerStroeniia = source.HouseNumber; dest.PochtIndeks = source.Index; dest.Telefon = source.Phone; if (source.Territory != null) { dest.Territoriia = PKHelper.CreateDataObject <Territoriia>(source.Territory.Guid); } return(dest); }
/// <summary> /// Получить список изменившихся полей по ключу изменения аудита - AuditEntity. /// </summary> /// <param name="changeAuditPK">Гуид AuditEntity</param> /// <returns></returns> public static List <string> GetChangeFieldFromAuditEntityByPK(Guid changeAuditPK) { var auditEntityObj = PKHelper.CreateDataObject <AuditEntity>(changeAuditPK); try { DataServiceFactory.AppDataService.LoadObject(AuditEntity.Views.AuditEntityE, auditEntityObj, false, true); } catch (Exception ex) { throw new Exception( $"Ошибка при попытке загрузить операцию изменения {nameof(AuditEntity)}({changeAuditPK}). {ex.Message}"); } var auditFieldsLcs = LoadingCustomizationStruct.GetSimpleStruct(typeof(AuditField), ViewForField); List <AuditField> changedFields; try { // Загружаем набор изменившихся полей из аудита auditFieldsLcs.LimitFunction = FunctionBuilder.BuildEquals <AuditField>(x => x.AuditEntity, auditEntityObj); changedFields = DataServiceFactory.AppDataService.LoadObjects(auditFieldsLcs).Cast <AuditField>() .ToList(); } catch (Exception ex) { throw new Exception( $"Произошла ошибка при попытке получить набор изменений полей для операции аудита:{PKHelper.GetGuidByObject(auditEntityObj)}. {ex.Message}"); } var changedFieldList = changedFields.Where(y => y.MainChange == null).Select(x => { var fieldName = x.Field; var separateIndex = fieldName.IndexOf(" ", StringComparison.Ordinal); if (separateIndex > 0) { fieldName = fieldName.Substring(0, separateIndex); } return(fieldName); }).ToList(); return(changedFieldList); }
public override Iis.Eais.GosUslugi.ChlenSemi Map(ChlenSemi source, Iis.Eais.GosUslugi.ChlenSemi dest) { if (dest.GetStatus() == ObjectStatus.Created) { dest.__PrimaryKey = source.Guid; } dest.IdentifikDannyeLeechnosti = source.IdentifikDannyeLeechnosti; switch (source.Shkolnik) { case tSchoolChild.Дошкольник: dest.Shkolnik = tStatusUchashchegosia.Doshkolnik; break; case tSchoolChild.Учащийся: dest.Shkolnik = tStatusUchashchegosia.Uchashchiisia; break; case tSchoolChild.аботает: dest.Shkolnik = tStatusUchashchegosia.Rabotaet; break; } if (dest.Zaiavlenie != null) { dest.Zaiavlenie = PKHelper.CreateDataObject <ZaiavlenieNaGosUslugu>(source.Zaiavlenie?.Guid); } if (dest.Leechnost != null) { dest.Leechnost = PKHelper.CreateDataObject <Leechnost>(source.Leechnost?.Guid); } if (dest.RodstvOtn != null) { dest.RodstvOtn = PKHelper.CreateDataObject <RodstvOtn>(source.RodstvOtn?.Guid); } dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public override DisplacementReason Map(PrichinaPeremeshcheniia source, DisplacementReason dest) { if (!PKHelper.GetGuidByObject(source).HasValue) { throw new ArgumentNullException(nameof(source)); } dest.Guid = PKHelper.GetGuidByObject(source).Value; dest.Id = source.Oldid; dest.Name = source.Naimenovanie; dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public override TypeBenefit Map(TipLgoty source, TypeBenefit dest) { if (!PKHelper.GetGuidByObject(source).HasValue) { throw new ArgumentNullException(nameof(source)); } dest.Guid = PKHelper.GetGuidByObject(source).Value; dest.Id = source.Oldid; dest.Name = source.Naimenovanie; dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public override GovernmentLevel Map(UrovenVlasti source, GovernmentLevel dest) { if (!PKHelper.GetGuidByObject(source).HasValue) { throw new ArgumentNullException(nameof(source)); } dest.Guid = PKHelper.GetGuidByObject(source).Value; dest.Id = source.Oldid; dest.Name = source.Naimenovanie; dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public void GetKeysIEnumerableIEnumerableObject() { var list = new List <object> { g1, kg1, doft0, str1 }; var listlist = new List <List <object> > { list, list }; Assert.Equal(PKHelper.GetKeys(listlist).Length, 4); }
public override FundingSource Map(IstochnikFin source, FundingSource dest) { if (!PKHelper.GetGuidByObject(source).HasValue) { throw new ArgumentNullException(nameof(source)); } dest.Guid = PKHelper.GetGuidByObject(source).Value; dest.Id = source.Oldid; dest.Name = source.Naimenovanie; dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public override Leechnost Map(Beneficiary source, Leechnost dest) { dest.__PrimaryKey = source.Guid; dest.Familiia = source.FamilyName; dest.Imia = source.FirstName; dest.Otchestvo = source.Patronymic; switch (source.Gender) { case tGender.Муж: dest.Pol = tPol.Muzhskoi; break; case tGender.Жен: dest.Pol = tPol.Zhenskii; break; } dest.DataRozhdeniia = (NullableDateTime)source.BirthDate.Value; dest.Snils = source.Snils; dest.INN = source.INN; dest.Mail = source.Email; dest.Telefon = source.Phone; switch (source.Education) { case tEducation.Общее: dest.Obrazovanie = tObrazovanieLeechn.Obshchee; break; case tEducation.Среднеепрофессиональное: dest.Obrazovanie = tObrazovanieLeechn.SredneeProf; break; case tEducation.Высшее: dest.Obrazovanie = tObrazovanieLeechn.Vysshee; break; } dest.StranaRozhdeniia = source.BirthCountry; dest.OblastRozhdeniia = source.BirthRegion; dest.GorodRozhdeniia = source.BirthTown; dest.RaionRozhdeniia = source.BirthDistrict; dest.Prozhivanie = PKHelper.CreateDataObject <Prozhivanie>(source.Location?.Guid); dest.Propiska = PKHelper.CreateDataObject <Prozhivanie>(source.Registration.Guid); return(dest); }
private static string GetErrorText(SyncDOEntity syncEntity) { var text = $"Ошибка: обнаружена запись SyncDOEntity({PKHelper.GetGuidByObject(syncEntity)})"; if (syncEntity.ObjectPrimaryKey == null) { text = $"{text} с пустым ключом на изменившийся объкт."; } else if (!syncEntity.Date.HasValue) { text = $"{text} с пустой датой изменения."; } else if (!syncEntity.AuditChangePK.HasValue) { text = $"{text} с пустым ключом на соответствующую запись изменения аудита."; } return(text); }
public override LegalAct Map(NormAkt source, LegalAct dest) { if (!PKHelper.GetGuidByObject(source).HasValue) { throw new ArgumentNullException(nameof(source)); } dest.Guid = PKHelper.GetGuidByObject(source).Value; dest.Id = source.Oldid; dest.Name = source.Naimenovanie; dest.Number = source.Nomer; if (source.DataPodpisaniia.HasValue) { dest.SignatureDate = source.DataPodpisaniia.Value; } dest.CodeReportFK = source.KodOtchFedKaznach; if (source.Tip != null) { dest.TypeLegalAct = new SyncXMLDataObject() { Guid = PKHelper.GetGuidByObject(source.Tip).Value }; } if (source.Izdatel != null) { dest.NamePublisher = new SyncXMLDataObject() { Guid = PKHelper.GetGuidByObject(source.Izdatel).Value }; } dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public override IzmenenieFIO Map(ChangeName source, IzmenenieFIO dest) { if (dest.GetStatus() == ObjectStatus.Created) { dest.__PrimaryKey = source.Guid; } dest.Familiia = source.FamilyName; dest.Imia = source.FirstName; dest.Otchestvo = source.Patronymic; dest.DataIzmeneniiaDannykh = (NullableDateTime)source.ChangeDate; dest.Leechnost = source.Beneficiary == null ? null : PKHelper.CreateDataObject <Leechnost>(source.Beneficiary?.Guid); dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public override ServiceBus.ObjectDataModel.ToTU.Specialist Map(Specialist source, ServiceBus.ObjectDataModel.ToTU.Specialist dest) { if (!PKHelper.GetGuidByObject(source).HasValue) { throw new ArgumentNullException(nameof(source)); } dest.Guid = PKHelper.GetGuidByObject(source).Value; dest.Id = source.Oldid; dest.FamilyName = source.Familiya; dest.FirstName = source.Imya; dest.Patronymic = source.Otchestvo; switch (source.RukOrganaCZ) { case tLogicheskii.Net: dest.ChiefSPA = tBool.Нет; break; case tLogicheskii.Da: dest.ChiefSPA = tBool.Да; break; } if (source.OrganSZ != null) { dest.SocialProtectionAuthority = new SyncXMLDataObject() { Guid = PKHelper.GetGuidByObject(source.OrganSZ).Value }; } dest.Login = source.Agent.Login; dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public override Street Map(Ulitca source, Street dest) { dest.Guid = PKHelper.GetGuidByObject(source).Value; dest.FIAS = source.KodFIAS; dest.ObjectType = source.VidObekta; if (source.Naimenovanie?.Length > 255) { throw new ArgumentOutOfRangeException($"{nameof(source.Naimenovanie)} more than 80 symbols!"); } dest.Name = source.Naimenovanie; dest.PostIndex = source.PochtIndeks; if (source.Territoriia != null) { dest.Territory = new Territory() { Guid = PKHelper.GetGuidByObject(source.Territoriia).Value }; } return(dest); }
public override Street Map(Ulitca source, Street dest) { if (!PKHelper.GetGuidByObject(source).HasValue) { throw new ArgumentNullException(nameof(source)); } dest.Guid = PKHelper.GetGuidByObject(source).Value; dest.Id = source.Oldid; dest.PostIndex = source.PochtIndeks; dest.CodeCLADR = source.KodCLADR; dest.Name = source.Naimenovanie; dest.CodeGR = (int)source.KodGR; dest.ObjectType = source.VidObekta; dest.CodeFIAS = source.KodFIAS; if (source.NovoeNazv != null) { dest.NewName = new SyncXMLDataObject() { Guid = PKHelper.GetGuidByObject(source.NovoeNazv).Value }; } if (source.Territoriia != null) { dest.Territory = new SyncXMLDataObject() { Guid = PKHelper.GetGuidByObject(source.Territoriia).Value }; } dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public override NaznachenieVyplaty Map(PaymentAppointment source, NaznachenieVyplaty dest) { if (dest.GetStatus() == ObjectStatus.Created) { dest.__PrimaryKey = source.Guid; } dest.Podtverzhdeno = (tLogicheskii)EnumCaption.GetValueFor(source.Confirmed.ToString(), typeof(tLogicheskii)); dest.Lgota = source.Benefit == null ? null : PKHelper.CreateDataObject <Lgota>(source.Benefit.Guid); dest.Nositel = source.Medium == null ? null : PKHelper.CreateDataObject <Leechnost>(source.Medium.Guid); dest.Izhdivenetc = source.Dependent == null ? null : PKHelper.CreateDataObject <Leechnost>(source.Dependent.Guid); dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public override Prozhivanie Map(Address source, Prozhivanie dest) { if (dest.GetStatus() == ObjectStatus.Created) { dest.__PrimaryKey = source.Guid; } dest.NomerDoma = source.Number; dest.Kvartira = source.Appartment; dest.NomerStroeniia = source.HouseNumber; if (source.Territory != null) { dest.Territoriia = PKHelper.CreateDataObject <Territoriia>(source.Territory.Guid); } if (source.Street != null) { dest.Ulitca = PKHelper.CreateDataObject <Ulitca>(source.Street.Guid); } return(dest); }
public override void SetMasters( ChlenSemi obj, Iis.Eais.GosUslugi.ChlenSemi dobj, List <string> attrs, IDataService defDS, IDataService syncDS, Source source, ref List <DataObject> arrToUpd, ref Dictionary <string, List <DataObject> > arrConformity) { var status = dobj.GetStatus(); if (obj.Zaiavlenie != null && (status == ObjectStatus.Created || attrs != null && attrs.Contains(ChlenSemi.ConstZaiavlenie))) { var val = PKHelper.CreateDataObject <ZaiavlenieNaGosUslugu>(obj.Zaiavlenie.Guid); defDS.LoadObject(val); dobj.Zaiavlenie = val; } if (obj.Leechnost != null && (status == ObjectStatus.Created || attrs != null && attrs.Contains(ChlenSemi.ConstLeechnost))) { var val = PKHelper.CreateDataObject <Leechnost>(obj.Leechnost.Guid); defDS.LoadObject(val); dobj.Leechnost = val; } if (obj.RodstvOtn != null && (status == ObjectStatus.Created || attrs != null && attrs.Contains(ChlenSemi.ConstRodstvOtn))) { var val = PKHelper.CreateDataObject <RodstvOtn>(obj.RodstvOtn.Guid); defDS.LoadObject(val); dobj.RodstvOtn = val; } }
public override Country Map(Strana source, Country dest) { if (!PKHelper.GetGuidByObject(source).HasValue) { throw new ArgumentNullException(nameof(source)); } dest.Guid = PKHelper.GetGuidByObject(source).Value; dest.Id = source.Oldid; dest.FullName = source.PolnoeNaimenovanie; dest.ShortName = source.KratkoeNaimenovanie; dest.NumericCode = (int)source.TcifrKod; dest.CodeAlpha2 = source.BukvKodAlfa2; dest.CodeAlpha3 = source.BukvKodAlfa3; dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public override FaktLgot Map(FactBenefits source, FaktLgot dest) { if (dest.GetStatus() == ObjectStatus.Created) { dest.__PrimaryKey = source.Guid; } dest.DataNachisleniia = (NullableDateTime)source.AccrualDate; dest.DataPolucheniia = (NullableDateTime)source.ReceiveDate; dest.Summa = (NullableDecimal)source.Amount; dest.SummaSotcPaketa = (NullableDecimal)source.AmountSocialPackage; dest.Kommentarii = source.Comments; dest.SposobOplaty = (tSposobOplaty)EnumCaption.GetValueFor(EnumCaption.GetCaptionFor(source.PaymentMethod), typeof(tSposobOplaty)); dest.DataPereplS = (NullableDateTime)source.OverpaymentDateFrom; dest.DataPereplPo = (NullableDateTime)source.OverpaymentDateTo; dest.NositelLgoty = source.MediumBenefit == null ? null : PKHelper.CreateDataObject <LgKatLeechnosti>(source.MediumBenefit.Guid); dest.Izhdivenetc = source.Dependent == null ? null : PKHelper.CreateDataObject <Leechnost>(source.Dependent.Guid); dest.Poluchatel = source.Recipient == null ? null : PKHelper.CreateDataObject <Leechnost>(source.Recipient.Guid); dest.Lgota = source.Benefit == null ? null : PKHelper.CreateDataObject <Lgota>(source.Benefit.Guid); dest.OrganSZ = source.SocialProtectionAuthority == null ? null : PKHelper.CreateDataObject <OrganSZ>(source.SocialProtectionAuthority.Guid); dest.Period = source.Period == null ? null : PKHelper.CreateDataObject <Period>(source.Period.Guid); dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }
public override Stroenie Map(Structure source, Stroenie dest) { if (dest.GetStatus() == ObjectStatus.Created) { dest.__PrimaryKey = source.Guid; } dest.KodFIAS = source.FIAS; dest.VidStroeniia = (tVidStroeniia)EnumCaption.GetValueFor(EnumCaption.GetCaptionFor(source.TypeStructure), typeof(tVidStroeniia)); dest.Nomer = source.Number == null ? 0 : (uint)source.Number; dest.PochtIndeks = source.PostIndex; dest.DopStroenie = source.Additional; dest.KodPodtverzhd = source.VerificationCode == null ? 0 : (uint)source.VerificationCode; dest.Raion = source.Area == null ? null : PKHelper.CreateDataObject <Territoriia>(source.Area.Guid); dest.Ulitca = source.Street == null ? null : PKHelper.CreateDataObject <Ulitca>(source.Street.Guid); dest.CreateTime = source.CreateTime; dest.Creator = source.Creator; dest.EditTime = source.EditTime; dest.Editor = source.Editor; return(dest); }