public SelectionElementAggregate(IGQLAggregate myBaseAggregate, string myAlias, EdgeList myEdgeList, LevelKey myLevelKey, IDChainDefinition myRelatedIDChainDefinition, AggregateDefinition myAggregateDefinition) { Alias = myAlias; EdgeList = myEdgeList; LevelKey = myLevelKey; Aggregate = myBaseAggregate; AggregateDefinition = myAggregateDefinition; RelatedIDChainDefinition = myRelatedIDChainDefinition; }
internal Aggregate(DomainModel domainModel, AggregateDefinition aggregateDefinition) { DomainModel = domainModel; FullName = aggregateDefinition.AggregateRootEntityName; var memberEntityNames = new[] { aggregateDefinition.AggregateRootEntityName } .Concat(aggregateDefinition.AggregateEntityNames) .Distinct() .ToArray(); Name = aggregateDefinition.AggregateRootEntityName.Name; MemberEntityNames = memberEntityNames; }
/// <summary> /// Adds an AggregateDefinition the DomainModel /// </summary> /// <param name="aggregateDefinition"></param> internal void AddAggregate(AggregateDefinition aggregateDefinition) { var aggregate = new Aggregate(this, aggregateDefinition); // Defensive programming to prevent unexpected behavior caused by "missing" extensions if (_finalizedAggregateFullNameByEntityFullName.IsValueCreated) { throw new InvalidOperationException( $"Aggregate '{aggregate.FullName}' is being added after the domain model has been processed for extension entities."); } _aggregates.Add(aggregate); _aggregateByName.Add(aggregate.FullName, aggregate); // Record aggregate, and its members (by name) _entityFullNamesByAggregateFullName.Add(aggregate.FullName, aggregate.MemberEntityNames); // Build reverse index, entity to aggregate aggregate.MemberEntityNames.ForEach( n => _aggregateNameByEntityName.Add(n, aggregate.FullName)); }
/// <summary> /// Adds an AggregateDefinition to be built into the Domain Model /// </summary> /// <param name="aggregateDefinition"></param> public void AddAggregate(AggregateDefinition aggregateDefinition) { EnsureDomainModelIsNotNull(); _domainModel.AddAggregate(aggregateDefinition); }
protected override void Arrange() { _agDefinition = new AggregateDefinition( new FullName("schema", "Aggregate"), new[] { new FullName("schema", "AChild"), new FullName("schema", "SourceEntity"), new FullName("schema", "TargetEntity") }); _entityDefinition1 = new EntityDefinition( "schema", "Aggregate", new EntityPropertyDefinition[0], new EntityIdentifierDefinition[0]); _entityDefinition2 = new EntityDefinition( "schema", "AChild", new EntityPropertyDefinition[0], new EntityIdentifierDefinition[0]); _entityDefinition3 = new EntityDefinition( "schema", "SourceEntity", new [] { CreateInt32Property(isIdentifying: true) }, new [] { new EntityIdentifierDefinition("PK", new [] { "Property1" }, isPrimary: true) }); _entityDefinition4 = new EntityDefinition( "schema", "TargetEntity", new EntityPropertyDefinition[0], new EntityIdentifierDefinition[0]); _schemaDefinition = new SchemaDefinition("Logical Schema", "schema"); _associateDefinition = new AssociationDefinition( new FullName("schema", "association1"), Cardinality.OneToOneOrMore, new FullName("schema", "SourceEntity"), new[] { CreateInt32Property() }, new FullName("schema", "TargetEntity"), new[] { CreateInt32Property() }, false, false); _domainModelDefinitionsProvider = Stub <IDomainModelDefinitionsProvider>(); A.CallTo(() => _domainModelDefinitionsProvider.GetDomainModelDefinitions()) .Returns( new DomainModelDefinitions( _schemaDefinition, new[] { _agDefinition }, new[] { _entityDefinition1, _entityDefinition2, _entityDefinition3, _entityDefinition4 }, new[] { _associateDefinition })); }
private void InitFlexGrid() { // setup flexgrid _flexGrid.AllowFiltering = true; _flexGrid.AllowFiltering = true; _flexGrid.AllowMerging = AllowMergingEnum.Nodes; _flexGrid.HideGroupedColumns = true; _flexGrid.ShowErrors = true; ColumnCollection columns = _flexGrid.Cols; // setup flexgrid columns columns[0].Width = 22; Column idColumn = columns["ID"]; idColumn.Width = 50; idColumn.AllowEditing = false; // setup combo list IEnumerable <string> products = (from s in _dataSet.Tables["Products"].Rows.Cast <DataRow>() select s) .Select(x => x["Name"].ToString()); columns["Product"].ComboList = string.Join("|", products); // build image map for countries var flagImageMap = new Dictionary <Country, Image>(); foreach (Country country in Enum.GetValues(typeof(Country))) { flagImageMap.Add(country, LoadImage(country.ToString())); } Column countryColumn = columns["Country"]; // assign image map to country column countryColumn.ImageMap = flagImageMap; countryColumn.ImageAndText = true; // build image map for colors var colorImageMap = new Dictionary <DrawColor, Image>(); foreach (DrawColor color in Enum.GetValues(typeof(DrawColor))) { colorImageMap.Add(color, LoadImage(color.ToString())); } Column colorColumn = columns["Color"]; // assign image map to color column colorColumn.ImageMap = colorImageMap; colorColumn.ImageAndText = true; Column priceColumn = columns["Price"]; priceColumn.Format = "C2"; priceColumn.TextAlign = TextAlignEnum.RightCenter; priceColumn.Width = 80; ValidationRuleCollection priceEditorValidation = _flexGrid.Cols["Price"].EditorValidation; // add validation rules priceEditorValidation.Add(new RequiredRule()); priceEditorValidation.Add(new RangeRule() { Minimum = decimal.Zero, Maximum = decimal.MaxValue, ErrorMessage = "Price cannot be negative" }); Column changeColumn = columns["Change"]; changeColumn.Format = "C2"; changeColumn.TextAlign = TextAlignEnum.RightCenter; Column historyColumn = columns["History"]; historyColumn.AllowEditing = false; // setup sparkline for history column historyColumn.ShowSparkline = true; Sparkline historySparkline = historyColumn.Sparkline; historySparkline.ShowLow = true; historySparkline.ShowHigh = true; Column discountColumn = columns["Discount"]; discountColumn.Format = "p0"; discountColumn.AllowEditing = false; discountColumn.Width = 80; Column ratingColumn = columns["Rating"]; ratingColumn.ImageAndText = false; ratingColumn.AllowEditing = false; columns["Active"].Width = 60; Column dateColumn = columns["Date"]; dateColumn.Format = "g"; // creating footers var footerDescription = new FooterDescription(); // price aggregate var priceAggregateDefinition = new AggregateDefinition() { Aggregate = AggregateEnum.Average, Caption = "Average price: ${0:N2}", PropertyName = "Price" }; // discount aggregate var discountAggregateDefinition = new AggregateDefinition { Aggregate = AggregateEnum.Average, Caption = "Average discount: {0:P}", PropertyName = "Discount" }; ObservableCollection <AggregateDefinition> aggregates = footerDescription.Aggregates; aggregates.Add(priceAggregateDefinition); aggregates.Add(discountAggregateDefinition); // add footers Footers footers = _flexGrid.Footers; footers.Descriptions.Add(footerDescription); footers.Fixed = true; // set details _flexGrid.RowDetailProvider = (g, r) => new CustomRowDetail(); // add red style CellStyle redStyle = _flexGrid.Styles.Add("Red"); redStyle.ImageAlign = ImageAlignEnum.LeftCenter; redStyle.ForeColor = Color.Red; // add green style CellStyle greenStyle = _flexGrid.Styles.Add("Green"); greenStyle.ImageAlign = ImageAlignEnum.LeftCenter; greenStyle.ForeColor = Color.Green; // add rating style CellStyle ratingStyle = _flexGrid.Styles.Add("Rating"); ratingStyle.ImageAlign = ImageAlignEnum.RightCenter; }
private void InitFlexGrid() { _flex.AllowFiltering = true; _flex.ShowErrors = true; _flex.Cols[0].Width = 22; // build data map var flagsHt = new Hashtable(); Enum.GetValues(typeof(Countries)) .Cast <Countries>() .ToList() .ForEach(x => { flagsHt.Add(x, LoadImage(x.ToString())); }); // assign ImageMap to countries column _flex.Cols["Country"].ImageMap = flagsHt; _flex.Cols["Country"].ImageAndText = true; var colorsHt = new Hashtable(); Enum.GetValues(typeof(DrawColors)) .Cast <DrawColors>() .ToList() .ForEach(x => { colorsHt.Add(x, LoadImage(x.ToString())); }); _flex.Cols["Color"].ImageMap = colorsHt; _flex.Cols["Color"].ImageAndText = true; // Formatting columns _flex.Cols["ID"].Width = 50; _flex.Cols["ID"].AllowEditing = false; _flex.Cols["Date"].Format = "g"; _flex.Cols["Price"].Format = "C2"; _flex.Cols["Price"].TextAlign = TextAlignEnum.RightCenter; // Add validator _flex.Cols["Price"].EditorValidation.Add(new RequiredRule()); _flex.Cols["Price"].EditorValidation.Add(new RangeRule() { Minimum = decimal.Zero, Maximum = decimal.MaxValue, ErrorMessage = "Price cannot be negative" }); _flex.Cols["Change"].Format = "C2"; _flex.Cols["Change"].TextAlign = TextAlignEnum.RightCenter; _flex.Cols["Discount"].Format = "p0"; _flex.Cols["Discount"].AllowEditing = false; _flex.Cols["Discount"].Width = 80; _flex.Cols["Rating"].ImageAndText = false; _flex.Cols["Rating"].AllowEditing = false; _flex.Cols["Price"].Width = 80; // For the history column initialize sparkline _flex.Cols["History"].ShowSparkline = true; _flex.Cols["History"].Sparkline.ShowLow = true; _flex.Cols["History"].Sparkline.ShowHigh = true; _flex.Cols["History"].AllowEditing = false; _flex.Cols["Active"].Width = 60; // Init combobox list var productList = (from s in _ds.Tables["Products"].Rows.Cast <DataRow>() select s) .Select(x => x["Name"].ToString()) .ToArray(); var list = string.Join("|", productList); _flex.Cols["Product"].ComboList = list; // Creating footers var footerDescription = new FooterDescription(); // Price agg var aggFooterPriceAvg = new AggregateDefinition(); aggFooterPriceAvg.Aggregate = AggregateEnum.Average; aggFooterPriceAvg.Caption = "Average price: ${0:N2}"; aggFooterPriceAvg.PropertyName = "Price"; // Discount agg var aggFooterDiscoutAvg = new AggregateDefinition(); aggFooterDiscoutAvg.Aggregate = AggregateEnum.Average; aggFooterDiscoutAvg.Caption = "Average discount: {0:P}"; aggFooterDiscoutAvg.PropertyName = "Discount"; footerDescription.Aggregates.Add(aggFooterPriceAvg); footerDescription.Aggregates.Add(aggFooterDiscoutAvg); // Add footers _flex.Footers.Descriptions.Add(footerDescription); _flex.Footers.Fixed = true; // Set details _flex.RowDetailProvider = (g, r) => new CustomRowDetail(); // Other properties _flex.HideGroupedColumns = true; _flex.AllowFiltering = true; _flex.AllowMerging = AllowMergingEnum.Nodes; // Add styles (Red, Green and Rating) var style = _flex.Styles.Add("Red"); style.ImageAlign = ImageAlignEnum.LeftCenter; style.ForeColor = Color.Red; style = _flex.Styles.Add("Green"); style.ImageAlign = ImageAlignEnum.LeftCenter; style.ForeColor = Color.Green; style = _flex.Styles.Add("Rating"); style.ImageAlign = ImageAlignEnum.RightCenter; }
public void Aggregate_Init(ParsingContext context, ParseTreeNode parseNode) { base.Init(context, parseNode); AggregateDefinition = new AggregateDefinition(new ChainPartAggregateDefinition(base.FuncDefinition)); }
private static void RemoveAggregateFunction(AggregateDefinition aggregateDefinition, GridViewColumn gridColumn, IColumnItem columnItem) { if (aggregateDefinition == null || gridColumn == null || columnItem == null) { return; } var function = gridColumn.AggregateFunctions.FirstOrDefault(x => x.FunctionName == aggregateDefinition.FunctionName); if (function != null) gridColumn.AggregateFunctions.Remove(function); columnItem.AggregateCriteriaList.Remove(aggregateDefinition); }