private Osoba CreateNewPerson(OsobaId id) { GlobalStats.NewOsobaCount++; return(new Osoba { IdPuvodce = id.IdPuvodce, IdOsoby = id.IdOsoby, Id = id.GetId(), SpisovaZnacka = id.SpisovaZnacka }); }
private Osoba ProcessPersonChangedEvent(XDocument xdoc, Rizeni rizeni, long eventId) { try { GlobalStats.OsobaChangedEvent++; var idPuvodce = ParseValue(xdoc, "idOsobyPuvodce"); var o = xdoc.Descendants("osoba").FirstOrDefault(); var osobaId = ParseValue(o, "idOsoby"); var key = new OsobaId { IdOsoby = osobaId, IdPuvodce = idPuvodce, SpisovaZnacka = rizeni.SpisovaZnacka }; var osoba = Repository.GetPerson(key); if (UpdatePerson(osoba, o)) { Repository.SetPerson(osoba); } return(osoba); } catch (Exception e) { GlobalStats.WriteError(e.Message, eventId); throw; } }
public Osoba GetPerson(OsobaId id) { var res = Elastic.GetESClient(Database.Osoba) .Search <Osoba>(s => s .Size(1) //zrus, pokud ma vratit vice zaznamu .Query(q => q.Term(t => t.Field(f => f.Id).Value(id.GetId()))) ); if (res.IsValid) { Stats.PersonGet++; return(res.Hits.FirstOrDefault()?.Source); } throw new ElasticsearchClientException(res.ServerError?.ToString()); }
private Osoba ProcessAddressChangedEvent(XDocument xdoc, Rizeni rizeni, long eventId) { try { GlobalStats.AdresaChangedEvent++; var idPuvodce = ParseValue(xdoc, "idOsobyPuvodce"); var o = xdoc.Descendants("osoba").FirstOrDefault(); var osobaId = ParseValue(o, "idOsoby"); var key = new OsobaId { IdOsoby = osobaId, IdPuvodce = idPuvodce, SpisovaZnacka = rizeni.SpisovaZnacka }; var osoba = Repository.GetPerson(key); var changed = UpdatePerson(osoba, o); var a = o.Descendants("adresa").FirstOrDefault(); if (a != null) { var druhAdresy = ParseValue(a, "druhAdresy"); if (druhAdresy == "TRVALÁ" || druhAdresy == "SÍDLO FY") { changed |= Update(osoba, p => p.Mesto, ParseValue(a, "mesto")); changed |= Update(osoba, p => p.Okres, ParseValue(a, "okres")); changed |= Update(osoba, p => p.Zeme, ParseValue(a, "zeme")); changed |= Update(osoba, p => p.Psc, ParseValue(a, "psc")); } } if (changed) { Repository.SetPerson(osoba); } return(osoba); } catch (Exception e) { GlobalStats.WriteError(e.Message, eventId); throw; } }
public Osoba GetPerson(OsobaId id) => OsobaCache.GetOrAdd(id.GetId(), UnderlyingRepository.GetPerson(id) ?? CreateNewPerson(id));