public ISummaryRepositoryItem ProduceFor(ServerModeSummaryDescriptor summaryDescriptor) { var summaryType = summaryDescriptor.SummaryType; switch (summaryType) { case Aggregate.Avg: return(ProduceAVGItem(summaryDescriptor)); case Aggregate.Count: return(ProduceSimpleItem(summaryDescriptor)); case Aggregate.Min: return(ProduceSimpleItem(summaryDescriptor)); case Aggregate.Max: return(ProduceSimpleItem(summaryDescriptor)); case Aggregate.Sum: return(ProduceSimpleItem(summaryDescriptor)); default: throw new NotSupportedException("Не поддерживаем SummaryType отличный от 'Avg', 'Count', 'Min', 'Max', 'Sum'. Переданное значение SummaryType: '{0}'".FillWith(summaryType)); } }
public SummaryRepositoryItemsContext(ServerModeSummaryDescriptor itemsDescriptor) { ItemsDescriptor = itemsDescriptor; ItemsType = CalculateItemsType(ItemsDescriptor); Key = ItemsDescriptor.CalculateKey(); }
private SimpleSummaryRepositoryItem ProduceSimpleItem(ServerModeSummaryDescriptor sourceDescriptor) { var itemValue = DataSourceEnumerator.FetchNext(); return(new SimpleSummaryRepositoryItem(sourceDescriptor) { Value = itemValue }); }
private AVGSummaryRepositoryItem ProduceAVGItem(ServerModeSummaryDescriptor sourceDescriptor) { var itemSum = DataSourceEnumerator.FetchNext().As<decimal>(); var itemCount = DataSourceEnumerator.FetchNext().As<int>(); var itemValue = itemSum / itemCount; return new AVGSummaryRepositoryItem(sourceDescriptor) { Sum = itemSum, Count = itemCount, Value = itemValue }; }
private AVGSummaryRepositoryItem ProduceAVGItem(ServerModeSummaryDescriptor sourceDescriptor) { var itemSum = DataSourceEnumerator.FetchNext().As <decimal>(); var itemCount = DataSourceEnumerator.FetchNext().As <int>(); var itemValue = itemSum / itemCount; return(new AVGSummaryRepositoryItem(sourceDescriptor) { Sum = itemSum, Count = itemCount, Value = itemValue }); }
private static Type CalculateItemsType(ServerModeSummaryDescriptor summaryDescriptor) { var summaryType = summaryDescriptor.SummaryType; switch (summaryType) { case Aggregate.Avg: return(typeof(AVGSummaryRepositoryItem)); case Aggregate.Count: case Aggregate.Min: case Aggregate.Max: case Aggregate.Sum: return(typeof(SimpleSummaryRepositoryItem)); default: throw new NotSupportedException("Не поддерживаем SummaryType отличный от 'Avg', 'Count', 'Min', 'Max', 'Sum'. Переданное значение SummaryType: '{0}'".FillWith(summaryType)); } }
public ISummaryRepositoryItem ProduceFor(ServerModeSummaryDescriptor summaryDescriptor) { var summaryType = summaryDescriptor.SummaryType; switch (summaryType) { case Aggregate.Avg: return ProduceAVGItem(summaryDescriptor); case Aggregate.Count: return ProduceSimpleItem(summaryDescriptor); case Aggregate.Min: return ProduceSimpleItem(summaryDescriptor); case Aggregate.Max: return ProduceSimpleItem(summaryDescriptor); case Aggregate.Sum: return ProduceSimpleItem(summaryDescriptor); default: throw new NotSupportedException("Не поддерживаем SummaryType отличный от 'Avg', 'Count', 'Min', 'Max', 'Sum'. Переданное значение SummaryType: '{0}'".FillWith(summaryType)); } }
public ISummaryRepositoryItem Produce(ServerModeSummaryDescriptor summaryDescriptor) { return ProduceFor(summaryDescriptor); }
public ISummaryRepositoryItem Item(ServerModeSummaryDescriptor summaryDescriptor) { return ItemsDictionary[summaryDescriptor.CalculateKey()]; }
protected BaseSummaryRepositoryItem(ServerModeSummaryDescriptor sourceDescriptor) { SourceDescriptor = sourceDescriptor; Key = SourceDescriptor.CalculateKey(); }
private static Type CalculateItemsType(ServerModeSummaryDescriptor summaryDescriptor) { var summaryType = summaryDescriptor.SummaryType; switch (summaryType) { case Aggregate.Avg: return typeof(AVGSummaryRepositoryItem); case Aggregate.Count: case Aggregate.Min: case Aggregate.Max: case Aggregate.Sum: return typeof(SimpleSummaryRepositoryItem); default: throw new NotSupportedException("Не поддерживаем SummaryType отличный от 'Avg', 'Count', 'Min', 'Max', 'Sum'. Переданное значение SummaryType: '{0}'".FillWith(summaryType)); } }
public static string CalculateKey(this ServerModeSummaryDescriptor source) { return("|" + CalculateKeyPart(source.SummaryType) + "|" + CalculateKeyPart(source.SummaryExpression) + "|"); }
public ISummaryRepositoryItem Produce(ServerModeSummaryDescriptor summaryDescriptor) { return(ProduceFor(summaryDescriptor)); }
public object Value(ServerModeSummaryDescriptor summaryDescriptor) { return Item(summaryDescriptor).Value; }
private SimpleSummaryRepositoryItem ProduceSimpleItem(ServerModeSummaryDescriptor sourceDescriptor) { var itemValue = DataSourceEnumerator.FetchNext(); return new SimpleSummaryRepositoryItem(sourceDescriptor) { Value = itemValue }; }
public NHibernateSummaryProcessor <T> AddSummaryDesciptor(ServerModeSummaryDescriptor summaryDescriptor) { PermanentSummaryDescriptors.Add(summaryDescriptor); return(this); }
public bool Contains(ServerModeSummaryDescriptor summaryDescriptor) { return(ItemsDictionary.ContainsKey(summaryDescriptor.CalculateKey())); }
public ISummaryRepositoryItem Item(ServerModeSummaryDescriptor summaryDescriptor) { return(ItemsDictionary[summaryDescriptor.CalculateKey()]); }
public object Value(ServerModeSummaryDescriptor summaryDescriptor) { return(Item(summaryDescriptor).Value); }
public SimpleSummaryRepositoryItem(ServerModeSummaryDescriptor sourceDescriptor) : base(sourceDescriptor) { }
public AVGSummaryRepositoryItem(ServerModeSummaryDescriptor sourceDescriptor) : base(sourceDescriptor) { }
public bool Contains(ServerModeSummaryDescriptor summaryDescriptor) { return ItemsDictionary.ContainsKey(summaryDescriptor.CalculateKey()); }