private String GenerateGroupingConditionKey(GroupingDefinition groupXGroupingDefinition, GroupingDefinition groupYGroupingDefinition) { string xKey = GenerateGroupingConditionKey(groupXGroupingDefinition); string yKey = GenerateGroupingConditionKey(groupYGroupingDefinition); return(string.Format(DefinitionKeyTemplate, xKey, yKey)); }
protected override void Context() { base.Context(); _groupingDefinition = A.Fake <GroupingDefinition>(); _populationAnalysisGroupingField = A.Fake <PopulationAnalysisGroupingField>(); A.CallTo(() => _groupingFieldPresenter.CreateGrouping(_field, _populationDataCollector)).Returns(_groupingDefinition); A.CallTo(() => _populationAnalysisFieldFactory.CreateGroupingField(_groupingDefinition, _field)).Returns(_populationAnalysisGroupingField); A.CallTo(() => _groupingFieldPresenter.FieldName).Returns("SUPER NAME"); }
public void LoopGroupDefinitionX(Dictionary <string, Combine2DDimensionGroupingDefinition> dictionary, GroupingDefinition groupXGroupingDefinition, GroupingDefinition groupYGroupingDefinition) { if (groupXGroupingDefinition != null) { LoopGroupDefinitionX(dictionary, groupXGroupingDefinition.InnerDefinition, groupYGroupingDefinition); } LoopGroupDefinitionY(dictionary, groupXGroupingDefinition, groupYGroupingDefinition); }
public GroupInfo AddData(GroupingDefinition definition, List <CalculateDefinition> listCalculateDefinition, List <TransactionInfo> transactionInfo) { var root = new GroupInfo() { Key = string.Empty, ListData = transactionInfo, InnerGroupData = new Dictionary <string, GroupInfo>(), ListCalculateDefinition = listCalculateDefinition, }; root.RefreshCalculateValue(); AddDataGroup(root, definition); return(root); }
protected override void Context() { _view = A.Fake <IEditPopulationAnalysisGroupingFieldView>(); _groupingDefinition = A.Fake <GroupingDefinition>(); _presenterMapper = A.Fake <IGroupingDefinitionToGroupingDefinitionPresenterMapper>(); _groupingField = A.Fake <PopulationAnalysisGroupingField>(); _populationDataCollector = A.Fake <IPopulationDataCollector>(); _groupingDefinitionPresenter = A.Fake <IGroupingDefinitionPresenter>(); _groupingField.PopulationAnalysis = A.Fake <PopulationAnalysis>(); _referenceField = A.Fake <IPopulationAnalysisField>(); sut = new EditPopulationAnalysisGroupingFieldPresenter(_view, _presenterMapper); A.CallTo(() => _groupingField.ReferencedFieldName).Returns("ParameterField"); A.CallTo(() => _groupingField.GroupingDefinition).Returns(_groupingDefinition); A.CallTo(() => _presenterMapper.MapFrom(_groupingDefinition)).Returns(_groupingDefinitionPresenter); A.CallTo(() => _groupingField.PopulationAnalysis.FieldByName(_groupingField.ReferencedFieldName)).Returns(_referenceField); }
public void Edit(GroupingDefinition groupingDefinition) { _groupingDefinition = groupingDefinition.DowncastTo <ValueMappingGroupingDefinition>(); uint sequence = 1; foreach (var value in _groupingDefinition.Mapping.Keys) { var dto = _mapping.FirstOrDefault(x => string.Equals(x.Value, value)); if (dto == null) { continue; } dto.UpdateFrom(_groupingDefinition.Mapping[value]); dto.Sequence = sequence++; } bindToView(); }
private String GenerateGroupingConditionKey(GroupingDefinition groupingDefinition) { StringBuilder builder = new StringBuilder(); if (groupingDefinition == null) { return(string.Empty); } else if (groupingDefinition.UpperDefinition != null) { string upperKey = GenerateGroupingConditionKey(groupingDefinition.UpperDefinition); builder.Append(upperKey); builder.Append(","); } builder.Append(groupingDefinition.KeyName); return(builder.ToString()); }
public void Edit(GroupingDefinition groupingDefinition) { _groupingDefinition = groupingDefinition.DowncastTo <NumberOfBinsGroupingDefinition>(); _binSizeGroupingDTO.NumberOfBins = _groupingDefinition.NumberOfBins; _binSizeGroupingDTO.StartColor = _groupingDefinition.StartColor; _binSizeGroupingDTO.EndColor = _groupingDefinition.EndColor; _binSizeGroupingDTO.NamingPattern = _groupingDefinition.NamingPattern; _binSizeGroupingDTO.Strategy = _groupingDefinition.Strategy; foreach (var groupingItem in _groupingDefinition.Items) { var label = new GroupingItemDTO(); label.UpdateFrom(groupingItem); _binSizeGroupingDTO.Labels.Add(label); } _binSizeGroupingDTO.Symbol = _binSizeGroupingDTO.Labels.First().Symbol; bindToView(); }
public void SetGrouping() { // Duration Grouping GroupingDefinition durationGrouping = new GroupingDefinition(); durationGrouping.Getter = "duration"; //durationGrouping.Formatter = delegate(DataViewGroup g) //{ // return "Duration: " + g.Value + " <span style='color:green'>(" + g.Count + " items)</span>"; //}; durationGrouping.Aggregators = new List <Aggregator>( new Sum("duration"), new Sum("cost")); durationGrouping.AggregateCollapsed = false; // Effort Grouping GroupingDefinition effortGrouping = new GroupingDefinition(); effortGrouping.Getter = "effortDriven"; //effortGrouping.Formatter = delegate(DataViewGroup g) //{ // return "Effort-Driven: " + ((bool)g.Value ? "True" : "False") + " <span style='color:green'>(" + g.Count + " items)</span>"; //}; effortGrouping.Aggregators = new List <Aggregator>( new Sum("duration"), new Sum("cost")); effortGrouping.Collapsed = false; // Percent Grouping GroupingDefinition percentGrouping = new GroupingDefinition(); percentGrouping.Getter = "effortDriven"; //percentGrouping.Formatter = delegate(DataViewGroup g) //{ // return "% Complete: " + g.Value + " <span style='color:green'>(" + g.Count + " items)</span>"; //}; percentGrouping.Aggregators = new List <Aggregator>( new Avg("percentComplete")); percentGrouping.Collapsed = false; Projects.SetGrouping(new List <GroupingDefinition>(durationGrouping, effortGrouping, percentGrouping)); }
private string GetDataGroupKey(GroupingDefinition groupingDefinition, TransactionInfo data) { if (groupingDefinition == null) { return(string.Empty); } StringBuilder builder = new StringBuilder(); builder.Append(groupingDefinition.GetKeyMethod.GetValue(data, null)); if (groupingDefinition.UpperDefinition != null) { builder.Append(","); string upperKey = GetDataGroupKey(groupingDefinition.UpperDefinition, data); builder.Append(upperKey); } return(builder.ToString()); }
public void Edit(GroupingDefinition groupingDefinition) { _groupingDefinition = groupingDefinition.DowncastTo <FixedLimitsGroupingDefinition>(); _fixedLimitDTOs.Clear(); for (int i = 0; i < _groupingDefinition.Limits.Count; i++) { var dto = newDTO(maximumInDisplayUnit: _numericField.ValueInDisplayUnit(_groupingDefinition.Limits[i])); if (i > 0) { dto.Minimum = _fixedLimitDTOs[i - 1].Maximum; } _fixedLimitDTOs.Add(dto); } updateFirstAndAddLastEntry(_groupingDefinition.Limits.Last()); _fixedLimitDTOs.Each((dto, i) => dto.UpdateFrom(_groupingDefinition.Items[i])); bindToView(); }
private void LoopGroupDefinitionY(Dictionary <string, Combine2DDimensionGroupingDefinition> dictionary, GroupingDefinition groupXGroupingDefinition, GroupingDefinition groupYGroupingDefinition) { Combine2DDimensionGroupingDefinition root = new Combine2DDimensionGroupingDefinition() { ListCalculateDefinition = this.CalculateDefinitions, XDefinition = groupXGroupingDefinition, YDefinition = groupYGroupingDefinition, Key = GenerateGroupingConditionKey(groupXGroupingDefinition, groupYGroupingDefinition), }; _logger.DebugFormat("LoopGroupY: {0}", root.Key); if (groupYGroupingDefinition != null) { LoopGroupDefinitionY(dictionary, groupXGroupingDefinition, groupYGroupingDefinition.InnerDefinition); } dictionary.Add(root.Key, root); }
private void AddDataGroup(GroupInfo root, GroupingDefinition definition) { foreach (var info in root.ListData) { string rootKey = root.Key; string groupKey = GetItemKey(definition.GetKeyMethod, info); string key = GetKey(rootKey, groupKey); GroupInfo groupInfo = null; if (!root.InnerGroupData.TryGetValue(key, out groupInfo)) { groupInfo = new GroupInfo() { RootKey = rootKey, GroupKey = groupKey, Key = key, GroupingDefinition = definition, ListData = new List <TransactionInfo>(), InnerGroupData = new Dictionary <string, GroupInfo>(), ListCalculateDefinition = root.ListCalculateDefinition }; root.InnerGroupData.Add(key, groupInfo); } groupInfo.ListData.Add(info); } foreach (var groupInfoInner in root.InnerGroupData.Values) { if (definition.InnerDefinition != null) { AddDataGroup(groupInfoInner, definition.InnerDefinition); } groupInfoInner.RefreshCalculateValue(); } }
public static GroupingDefinitionItem For(GroupingDefinition groupingDefinition) { return(_allGroupings.Keys.First(x => x.GroupingDefinitionType == groupingDefinition.GetType())); }
static void Main(string[] args) { ExcelRead reader = new ExcelRead(); reader.InitializeWorkbook("20130417 Tong Doanh Thu 2013-Phan Tich.xls"); var listProductInfo = reader.ReadProductData(); var listData = reader.ReadTransactionData(listProductInfo); var listFilterRequest = new List <FilteringItem>(new FilteringItem[] { new FilteringItem() { FilterName = "Year", FilterValue = 2012, }, new FilteringItem() { FilterName = "Month", FilterValue = 1, }, new FilteringItem() { FilterName = "CustomerName", FilterValue = "Bác sĩ Nguyễn Văn Cót", } }); var calculateDefinitions = new List <CalculateDefinition>(new CalculateDefinition[] { new CalculateDefinition() { CalculateName = "Quantity", Type = CalculateType.Sum, }, new CalculateDefinition() { CalculateName = "ContractPrice", Type = CalculateType.Average, }, new CalculateDefinition() { CalculateName = "SellPrice", Type = CalculateType.Sum, }, }); var groupXDefinitionCustomerName = new GroupingDefinition() { KeyName = "CustomerName" }; var groupXDefinitionProductCategory = new GroupingDefinition() { KeyName = "ProductCategory" }; var groupXDefinitionProductName = new GroupingDefinition() { KeyName = "ProductName" }; groupXDefinitionCustomerName.UpperDefinition = null; groupXDefinitionCustomerName.InnerDefinition = groupXDefinitionProductCategory; groupXDefinitionProductCategory.UpperDefinition = groupXDefinitionCustomerName; groupXDefinitionProductCategory.InnerDefinition = groupXDefinitionProductName; groupXDefinitionProductName.UpperDefinition = groupXDefinitionProductCategory; groupXDefinitionProductName.InnerDefinition = null; var groupYDefinitionYear = new GroupingDefinition() { KeyName = "Year", }; var groupYDefinitionMonth = new GroupingDefinition() { KeyName = "Month", }; groupYDefinitionYear.UpperDefinition = null; groupYDefinitionYear.InnerDefinition = groupYDefinitionMonth; groupYDefinitionMonth.UpperDefinition = groupYDefinitionYear; groupYDefinitionMonth.InnerDefinition = null; Console.WriteLine(listProductInfo.Count); Console.WriteLine(listData.Count); //DataFilteringController filterControl = new DataFilteringController() // { // FilterProps = listFilterRequest // }; //var filterData = filterControl.GetFilterData(listData); GroupingController controller = new GroupingController(); var result = controller.AddData(groupYDefinitionYear, calculateDefinitions, listData); var pivotTable = new PivotTableController() { GroupingX = groupXDefinitionCustomerName, GroupingY = groupYDefinitionYear, Data = listData, //Data = filterData, CalculateDefinitions = calculateDefinitions, DataFiltering = new DataFilteringController() { FilterProps = listFilterRequest } }; pivotTable.AnalyzeData(); Console.ReadKey(); }
public IGroupingDefinitionPresenter MapFrom(GroupingDefinition groupingDefinition) { return(MapFrom(GroupingDefinitions.For(groupingDefinition))); }