public RatingDataPerYear(IEnumerable <RatingDataPerYear> items, BasicDataPerYear basicData) { var validItems = items.Where(i => i != null); int firstYear = Analysis.BasicDataPerYear.UsualFirstYear; if (validItems.Count() > 0) { firstYear = validItems.Min(m => m.FirstYear); } int lastYear = DateTime.Now.Year; if (validItems.Count() > 0) { lastYear = validItems.Max(m => m.LastYear); } Dictionary <int, RatingData> rdata = new Dictionary <int, RatingData>(); for (int i = firstYear; i <= lastYear; i++) { rdata.Add(i, new RatingData() { NumBezCeny = validItems.Sum(s => s.Data.ContainsKey(i) ? s.Data[i].NumBezCeny : 0), NumSPolitiky = validItems.Sum(s => s.Data.ContainsKey(i) ? s.Data[i].NumSPolitiky : 0), NumBezSmluvniStrany = validItems.Sum(s => s.Data.ContainsKey(i) ? s.Data[i].NumBezSmluvniStrany : 0), SumKcBezSmluvniStrany = validItems.Sum(s => s.Data.ContainsKey(i) ? s.Data[i].SumKcBezSmluvniStrany : 0), SumKcSPolitiky = validItems.Sum(s => s.Data.ContainsKey(i) ? s.Data[i].SumKcSPolitiky : 0) }); } Init(rdata, basicData); }
public BasicDataPerYear StatPerYearStatni() { if (_statPerYearStatni == null) { _statPerYearStatni = new BasicDataPerYear(this.StatniFirmy.Select(m => m.Value.BasicStatPerYear)); } return(_statPerYearStatni); }
public BasicDataPerYear StatPerYearSoukrome() { if (_statPerYearSoukrome == null) { _statPerYearSoukrome = new BasicDataPerYear(this.SoukromeFirmy.Select(m => m.Value.BasicStatPerYear)); } return(_statPerYearSoukrome); }
static OsobaStatistic Empty(Data.Relation.AktualnostType aktualnost = Data.Relation.AktualnostType.Nedavny) { OsobaStatistic os = new OsobaStatistic(); os.Aktualnost = aktualnost; os.BasicStatPerYear = BasicDataPerYear.Empty(); os.RatingPerYear = RatingDataPerYear.Empty(); return(os); }
protected virtual void Init(Dictionary <int, RatingData> dataFromDb, BasicDataPerYear basicData) { if (dataFromDb == null) { dataFromDb = new Dictionary <int, RatingData>(); } //add missing years for (int year = FirstYear; year <= LastYear; year++) { if (dataFromDb.ContainsKey(year)) { Data.Add(year, dataFromDb[year]); } else { Data.Add(year, RatingData.Empty()); } } //add summary Data.Add(DataPerYear.AllYearsSummaryKey, new RatingData() { NumBezCeny = Data.Sum(m => m.Value.NumBezCeny), NumBezSmluvniStrany = Data.Sum(m => m.Value.NumBezSmluvniStrany), NumSPolitiky = Data.Sum(m => m.Value.NumSPolitiky), SumKcSPolitiky = Data.Sum(m => m.Value.SumKcSPolitiky), SumKcBezSmluvniStrany = Data.Sum(m => m.Value.SumKcBezSmluvniStrany) }); Data[DataPerYear.AllYearsSummaryKey].PercentBezCeny = basicData.Summary.Pocet == 0 ? 0 : (decimal)Data[DataPerYear.AllYearsSummaryKey].NumBezCeny / basicData.Summary.Pocet; Data[DataPerYear.AllYearsSummaryKey].PercentBezSmluvniStrany = basicData.Summary.Pocet == 0 ? 0 : (decimal)Data[DataPerYear.AllYearsSummaryKey].NumBezSmluvniStrany / basicData.Summary.Pocet; Data[DataPerYear.AllYearsSummaryKey].PercentKcBezSmluvniStrany = basicData.Summary.CelkemCena == 0 ? 0 : (decimal)Data[DataPerYear.AllYearsSummaryKey].SumKcBezSmluvniStrany / basicData.Summary.CelkemCena; Data[DataPerYear.AllYearsSummaryKey].PercentSPolitiky = basicData.Summary.Pocet == 0 ? 0 : (decimal)Data[DataPerYear.AllYearsSummaryKey].NumSPolitiky / basicData.Summary.Pocet; Data[DataPerYear.AllYearsSummaryKey].PercentKcSPolitiky = basicData.Summary.CelkemCena == 0 ? 0 : ((decimal)(Data[DataPerYear.AllYearsSummaryKey].SumKcSPolitiky) / (decimal)basicData.Summary.CelkemCena); //calculate percents for (int year = FirstYear; year <= LastYear; year++) { Data[year].PercentBezCeny = basicData[year].Pocet == 0 ? 0 : (decimal)Data[year].NumBezCeny / basicData[year].Pocet; Data[year].PercentBezSmluvniStrany = basicData[year].Pocet == 0 ? 0 : (decimal)Data[year].NumBezSmluvniStrany / basicData[year].Pocet; Data[year].PercentKcBezSmluvniStrany = basicData[year].CelkemCena == 0 ? 0 : (decimal)Data[year].SumKcBezSmluvniStrany / basicData[year].CelkemCena; Data[year].PercentSPolitiky = basicData[year].Pocet == 0 ? 0 : (decimal)Data[year].NumSPolitiky / basicData[year].Pocet; Data[year].PercentKcSPolitiky = basicData[year].CelkemCena == 0 ? 0 : ((decimal)(Data[year].SumKcSPolitiky) / (decimal)basicData[year].CelkemCena); } }
private static BasicDataPerYear getBasicStatisticForSimpleQuery(string query) { Dictionary <int, BasicData> result = new Dictionary <int, BasicData>(); if (string.IsNullOrEmpty(query)) { return(BasicDataPerYear.Empty()); } AggregationContainerDescriptor <HlidacStatu.Lib.Data.Smlouva> aggs = new AggregationContainerDescriptor <HlidacStatu.Lib.Data.Smlouva>() .DateHistogram("x-agg", h => h .Field(f => f.datumUzavreni) .Interval(Nest.DateInterval.Year) .Aggregations(agg => agg .Sum("sumincome", s => s .Field(ff => ff.CalculatedPriceWithVATinCZK) ) ) ); // new AggregationContainerDescriptor<HlidacStatu.Lib.Data.Smlouva>().Sum("sumKc", m => m.Field(f => f.CalculatedPriceWithVATinCZK)) //CelkemCena = res.ElasticResults.Aggregations.Keys.Contains("sumKc") ? ((Nest.ValueAggregate)res.Result.Aggregations["sumKc"]).Value : 0, var client = HlidacStatu.Lib.ES.Manager.GetESClient(); var res = HlidacStatu.Lib.Data.Smlouva.Search.SimpleSearch(query, 0, 0, HlidacStatu.Lib.Data.Smlouva.Search.OrderResult.FastestForScroll, aggs, true, exactNumOfResults: true); if (res.IsValid == false) { return(BasicDataPerYear.Empty()); } foreach (Nest.DateHistogramBucket val in ((BucketAggregate)res.ElasticResults.Aggregations["x-agg"]).Items) { var bdata = new BasicData() { Pocet = val.DocCount ?? 0, CelkemCena = (decimal)(((Nest.DateHistogramBucket)val).Sum("sumincome").Value ?? 0) }; result.Add(val.Date.Year, bdata); } return(new BasicDataPerYear(result)); }
public void Add(BasicDataPerYear oth) { //Dictionary<int, BasicData> data = new Dictionary<int, BasicData>(); foreach (var kv in oth.Data) { if (this.Data.Keys.Contains(kv.Key)) { this.Data[kv.Key].Add(kv.Value.Pocet, kv.Value.CelkemCena); } else { this.Data.Add(kv.Key, kv.Value); } } //add summary this.Data.Remove(DataPerYear.AllYearsSummaryKey); Data.Add(DataPerYear.AllYearsSummaryKey, new BasicData() { Pocet = Data.Sum(m => m.Value.Pocet), CelkemCena = Data.Sum(m => m.Value.CelkemCena) }); }
public static RatingDataPerYear Empty() { return(new RatingDataPerYear( new Dictionary <int, RatingData>(), BasicDataPerYear.Empty() )); }
public RatingDataPerYear(Dictionary <int, RatingData> dataFromDb, BasicDataPerYear basicData) { Init(dataFromDb, basicData); }