private void Join() { Bootstrapper.GetLocker().Lock(i => { if (!_isJoined) { foreach (var specification in _specifications) { if (specification.Criterion != null) { if (Criterion is null) { Criterion = specification.Criterion; } else { Criterion = Criterion.AndAlso(specification.Criterion); } } if (specification.OrderBy != null) { if (OrderBy is null) { OrderBy = specification.OrderBy; } else { OrderBy = OrderBy.AndAlso(specification.OrderBy); } } if (specification.OrderByDescending != null) { if (OrderByDescending is null) { OrderByDescending = specification.OrderByDescending; } else { OrderByDescending = OrderByDescending.AndAlso(specification.OrderByDescending); } } } _isJoined = true; } }); }
protected override async Task OnParametersSetAsync() { series.Name = Name; series.ShowDataLabels = ShowDataLabels; series.Stroke = Stroke; var xCompiled = XValue.Compile(); IEnumerable <DataPoint <TItem> > datalist; if (YAggregate == null) { var yCompiled = YValue.Compile(); datalist = Items.Select(e => new DataPoint <TItem> { X = xCompiled.Invoke(e), Y = yCompiled.Invoke(e), Items = new List <TItem> { e } }); } else { var yAggCompiled = YAggregate.Compile(); datalist = Items.GroupBy(e => xCompiled.Invoke(e)).Select(d => new DataPoint <TItem> { X = d.Key, Y = yAggCompiled.Invoke(d), Items = d.ToList() }); } if (OrderBy != null) { datalist = datalist.OrderBy(o => OrderBy.Compile().Invoke(o)); } else if (OrderByDescending != null) { datalist = datalist.OrderByDescending(o => OrderByDescending.Compile().Invoke(o)); } datalist = datalist.ToList(); series.Data = datalist; if (!Chart.ManualRender && Chart.ForceRender == false && currentDatalist != null && !currentDatalist.SequenceEqual(datalist, new DataPointComparer <TItem>())) { Chart.ForceRender = true; } currentDatalist = datalist; }
public void ShowExample_Click(object sender, EventArgs e) { Form form = null; switch (((Button)sender).Name) { // LINQ Dynamic | Restriction Operators case "uiROWhere": form = new Where(); break; // LINQ Dynamic | Projection Operators case "uiPOSelect": form = new Select(); break; case "uiPOSelectMany": form = new SelectMany(); break; // LINQ Dynamic | Aggregate Operators case "uiAOMin": form = new Min(); break; case "uiAOMax": form = new Max(); break; case "uiAOSum": form = new Sum(); break; case "uiAOCount": form = new Count(); break; case "uiAOAverage": form = new Average(); break; case "uiAOAggregate": form = new Aggregate(); break; // LINQ Dynamic | Query Execution case "uiQEDeferredExecution": form = new DeferredExecution(); break; case "uiQEQueryReuse": form = new QueryReuse(); break; case "uiQEImmediateExecution": form = new ImmediateExecution(); break; // LINQ Dynamic | Join Operators case "uiJOCrossJoin": form = new CrossJoin(); break; case "uiJOGroupJoin": form = new GroupJoin(); break; case "uiJOCrossWithGroupJoin": form = new CrossJoinwithGroupJoin(); break; case "uiJOLeftOuterJoin": form = new LeftOuterJoin(); break; // LINQ Dynamic | Set Operators case "uiSODistinct": form = new Distinct(); break; case "uiSOExcept": form = new Except(); break; case "uiSOIntersect": form = new Intersect(); break; case "uiSOUnion": form = new Union(); break; // LINQ Dynamic | Element Operators case "uiEOElementAt": form = new ElementAt(); break; case "uiEOFirst": form = new First(); break; case "uiEOFirstDefault": form = new FirstOrDefault(); break; // LINQ Dynamic | Custom Sequence Operators case "uiCSOCombine": form = new Combine(); break; // LINQ Dynamic | Quantifiers case "uiQuantifiersAll": form = new All(); break; case "uiQuantifiersAny": form = new Any(); break; // LINQ Dynamic | Grouping Operators case "uiGOGroupBy": form = new GroupBy(); break; // LINQ Dynamic | Miscellaneous Operators case "uiMOConcat": form = new Concat(); break; case "uiMOEqualAll": form = new EqualAll(); break; // LINQ Dynamic | Generation Operators case "uiGORepeat": form = new Repeat(); break; case "uiGORange": form = new Range(); break; // LINQ Dynamic | Ordering Operators case "uiOOOrderBy": form = new OrderBy(); break; case "uiOOThenBy": form = new ThenBy(); break; case "uiOOThenByDescending": form = new ThenByDescending(); break; case "uiOOOrderByDescending": form = new OrderByDescending(); break; case "uiOOReverse": form = new Reverse(); break; // LINQ Dynamic | Conversion Operators case "uiCOOfType": form = new OfType(); break; case "uiCOToArray": form = new ToArray(); break; case "uiCOToDictionary": form = new ToDictionary(); break; case "uiCOToList": form = new ToList(); break; // LINQ Dynamic | Partitioning Operators case "uiPOTake": form = new Take(); break; case "uiPOTakeWhile": form = new TakeWhile(); break; case "uiPOSkip": form = new Skip(); break; case "uiPOSkipWhile": form = new SkipWhile(); break; } form.StartPosition = FormStartPosition.CenterParent; form.ShowDialog(); }