internal static Util.Cache.CouchbaseCacheManager <Analytics.StatisticsSubjectPerYear <Statistics.RegistrSmluv>, Firma> RegistrSmluvCache(int?obor) { obor = obor ?? 0; if (registrSmluvCaches.ContainsKey(obor.Value) == false) { lock (_registrSmluvCachesLock) { if (registrSmluvCaches.ContainsKey(obor.Value) == false) { registrSmluvCaches.Add(obor.Value, Util.Cache.CouchbaseCacheManager <Analytics.StatisticsSubjectPerYear <Statistics.RegistrSmluv>, Firma> .GetSafeInstance("Firma_SmlouvyStatistics_" + obor.Value.ToString(), (firma) => RegistrSmluv.Create(firma, null), TimeSpan.FromHours(12), System.Configuration.ConfigurationManager.AppSettings["CouchbaseServers"].Split(','), System.Configuration.ConfigurationManager.AppSettings["CouchbaseBucket"], System.Configuration.ConfigurationManager.AppSettings["CouchbaseUsername"], System.Configuration.ConfigurationManager.AppSettings["CouchbasePassword"], f => f.ICO) ); } } } return(registrSmluvCaches[obor.Value]); }
public static RegistrSmluv Calculate(Osoba o, Data.Relation.AktualnostType aktualnost, int?obor) { RegistrSmluv res = new RegistrSmluv(); res.OsobaNameId = o.NameId; res.Aktualnost = aktualnost; res.Obor = (Smlouva.SClassification.ClassificationsTypes?)obor; Dictionary <string, StatisticsSubjectPerYear <Smlouva.Statistics.Data> > statni = new Dictionary <string, StatisticsSubjectPerYear <Smlouva.Statistics.Data> >(); Dictionary <string, StatisticsSubjectPerYear <Smlouva.Statistics.Data> > soukr = new Dictionary <string, StatisticsSubjectPerYear <Smlouva.Statistics.Data> >(); var perIcoStat = o.AktualniVazby(aktualnost) .Where(v => !string.IsNullOrEmpty(v.To?.UniqId) && v.To.Type == HlidacStatu.Lib.Data.Graph.Node.NodeType.Company) .Select(v => v.To) .Distinct(new HlidacStatu.Lib.Data.Graph.NodeComparer()) .Select(f => Firmy.Get(f.Id)) .Where(f => f.Valid == true) .Select(f => new { f = f, ss = f.StatistikaRegistruSmluv(obor) }); foreach (var it in perIcoStat) { if (it.f.PatrimStatu()) { statni.Add(it.f.ICO, it.ss); } else { soukr.Add(it.f.ICO, it.ss); } } res.StatniFirmy = statni; res.SoukromeFirmy = soukr; return(res); }