/// <summary> /// This Method is a javascript callable method. /// </summary> /// <param name="e">A parameter from javascript.</param> /// <param name="y">A callback to javascript.</param> public void WebMethod2() { // X:\jsc.svn\examples\javascript\svg\SVGNavigationTiming\SVGNavigationTiming\ApplicationWebService.cs // X:\jsc.svn\examples\javascript\LINQ\MinMaxAverageExperiment\MinMaxAverageExperiment\ApplicationWebService.cs var x = new PerformanceResourceTimingData2.ApplicationResourcePerformance(); x.Insert( new PerformanceResourceTimingData2ApplicationResourcePerformanceRow { duration = 44, path = " /zfoo/BAR/ " } ); // select 0 as foo, // g.`path` as `path`, // g.`ToLower` as `ToLower`, // g.`ToUpper` as `ToUpper`, // g.`Length` as `Length` //from( // select 0 as foo, // s.`path` as `path`, // lower(s.`path`) as `ToLower`, // upper(s.`path`) as `ToUpper`, // length(s.`path`) as `Length` // from `PerformanceResourceTimingData2.ApplicationResourcePerformance` as s //) as g //var uc = from k in new PerformanceResourceTimingData2.ApplicationResourcePerformance() // where !string.IsNullOrEmpty(k.path) // where k.path.Contains("zfoo") // select new // { // xxfoo = "bar", // k.Timestamp, // k.Key, // k.path, // Trim = k.path.Trim(), // TrimStart = k.path.TrimStart(), // TrimEnd = k.path.TrimEnd(), // ToLower = k.path.ToLower(), // ToUpper = k.path.ToUpper(), // // www.w3schools.com/sql/sql_func_len.asp // k.path.Length, // }; //// what about our own PrimaryConstructor for select? //var uc0 = uc.AsDataTable(); //var uc1 = uc.AsGenericEnumerable(); //var uc2 = uc.FirstOrDefault(); // Select { selector = k => new <> f__AnonymousType0`2(path = k.path, Length = k.path.Length) } // AsDataTable { // Strategy = System.Data.QueryStrategyOfTRowExtensions + SelectQueryStrategy`2[MinMax //Select CommandBuilder //select `Key`, `name`, `path`, `entryType`, `duration`, `startTime`, `connectStart`, `connectEnd //from `PerformanceResourceTimingData2.ApplicationResourcePerformance` Debugger.Break(); x.Insert( new PerformanceResourceTimingData2ApplicationResourcePerformanceRow { duration = 999 } ); // http://stackoverflow.com/questions/1107868/linq-min-max // http://csharpbasic.blogspot.com/2008/08/exploring-linq-functions-select-min-max.html // http://blogs.msdn.com/b/mattwar/archive/2008/07/08/linq-building-an-iqueryable-provider-part-x.aspx // http://oakleafblog.blogspot.com/2008/07/linq-and-entity-framework-posts-for_14.html //var min = new PerformanceResourceTimingData2.ApplicationResourcePerformance().Min(k => k.duration); // https://sites.google.com/a/jsc-solutions.net/backlog/knowledge-base/2014/20140705/20140712 var e = from z in new PerformanceResourceTimingData2ApplicationResourcePerformance() // .AsEnumerable() group z by 1 into gg select new { Min = gg.Min(k => k.duration), Max = gg.Max(k => k.duration), Average = gg.Average(k => k.duration), Count = gg.Count(), Sum = gg.Sum(k => k.duration) //max = z.duration.Max(), //avg = z.duration.Average(), }; // select 0 as foo, // min(s.`duration`) as `Min`, // max(s.`duration`) as `Max`, // avg(s.`duration`) as `Average`, // count(*) as `Count`, // sum(s.`duration`) as `Sum` //from(select g.`Grouping.Key`, // g.`Min` as `Min`, // g.`Max` as `Max`, // g.`Average` as `Average`, // g.`Count` as `Count`, // g.`Sum` as `Sum` // from( // select 1 as `Grouping.Key`, // min(s.`duration`) as `Min`, // max(s.`duration`) as `Max`, // avg(s.`duration`) as `Average`, // count(*) as `Count`, // sum(s.`duration`) as `Sum` // from `PerformanceResourceTimingData2.ApplicationResourcePerformance` as s // group by `Grouping.Key` // ) as g // ) as s //before Fill //ScriptCoreLib.Extensions::ScriptCoreLib.Shared.Data.Diagnostics.WithConnectionLambda.WithConnection // error: { // Message = no such column: s.duration, ex = System.Data.SQLite.SQLiteSyntaxException(0x80004005): no such column: // s.duration //before Fill //ScriptCoreLib.Extensions::ScriptCoreLib.Shared.Data.Diagnostics.WithConnectionLambda.WithConnection // error: { // Message = no such column: s.duration, ex = System.Data.SQLite.SQLiteSyntaxException(0x80004005): no such column: // s.duration // [0] = { Min = 44, Max = 999, Average = 521.5, Count = 2 } //GroupBy { keySelector = z => 1 } //Select { selector = g => new <> f__AnonymousType0`1(Count = g.Count()) } //error: // { // Message = Object reference not set to an instance of an object., ex = System.NullReferenceException: Object reference not set to an instance of an object. // at System.Data.QueryStrategyOfTRowExtensions.<> c__DisplayClass12`3.< GroupBy > b__8(CommandBuilderState state) in x:\jsc.svn\core\ScriptCoreLib.Extensions\ScriptCoreLib.Extensions\Shared\Data\Diagnostics\QueryStrategyOfTRowExtensions.GroupBy.cs:line 298 // https://sites.google.com/a/jsc-solutions.net/backlog/knowledge-base/2014/201405/20140518-1/roslyn // what about generic AsEnumerable ? var a = e.AsDataTable(); // select g.`Grouping.Key`, // g.`Count` as `Count` //from( // select 1 as `Grouping.Key`, // count(*) as `Count` // from `PerformanceResourceTimingData2.ApplicationResourcePerformance` as s // group by `Grouping.Key` //) as g //select g.`Grouping.Key`, // g.`Count` as `Count`, // g.`Sum` as `Sum` //from( // select 1 as `Grouping.Key`, // count(*) as `Count`, // sum(s.`duration`) as `Sum` // from `PerformanceResourceTimingData2.ApplicationResourcePerformance` as s // group by `Grouping.Key` //) as g Debugger.Break(); }
/// <summary> /// This Method is a javascript callable method. /// </summary> /// <param name="e">A parameter from javascript.</param> /// <param name="y">A callback to javascript.</param> public void WebMethod2() { // X:\jsc.svn\examples\javascript\svg\SVGNavigationTiming\SVGNavigationTiming\ApplicationWebService.cs // X:\jsc.svn\examples\javascript\LINQ\MinMaxAverageExperiment\MinMaxAverageExperiment\ApplicationWebService.cs var x = new PerformanceResourceTimingData2.ApplicationResourcePerformance(); x.Insert( new PerformanceResourceTimingData2ApplicationResourcePerformanceRow { duration = 44, path = " /zfoo/BAR/ " } ); // select 0 as foo, // g.`path` as `path`, // g.`ToLower` as `ToLower`, // g.`ToUpper` as `ToUpper`, // g.`Length` as `Length` //from( // select 0 as foo, // s.`path` as `path`, // lower(s.`path`) as `ToLower`, // upper(s.`path`) as `ToUpper`, // length(s.`path`) as `Length` // from `PerformanceResourceTimingData2.ApplicationResourcePerformance` as s //) as g //var uc = from k in new PerformanceResourceTimingData2.ApplicationResourcePerformance() // where !string.IsNullOrEmpty(k.path) // where k.path.Contains("zfoo") // select new // { // xxfoo = "bar", // k.Timestamp, // k.Key, // k.path, // Trim = k.path.Trim(), // TrimStart = k.path.TrimStart(), // TrimEnd = k.path.TrimEnd(), // ToLower = k.path.ToLower(), // ToUpper = k.path.ToUpper(), // // www.w3schools.com/sql/sql_func_len.asp // k.path.Length, // }; //// what about our own PrimaryConstructor for select? //var uc0 = uc.AsDataTable(); //var uc1 = uc.AsGenericEnumerable(); //var uc2 = uc.FirstOrDefault(); // Select { selector = k => new <> f__AnonymousType0`2(path = k.path, Length = k.path.Length) } // AsDataTable { // Strategy = System.Data.QueryStrategyOfTRowExtensions + SelectQueryStrategy`2[MinMax //Select CommandBuilder //select `Key`, `name`, `path`, `entryType`, `duration`, `startTime`, `connectStart`, `connectEnd //from `PerformanceResourceTimingData2.ApplicationResourcePerformance` Debugger.Break(); x.Insert( new PerformanceResourceTimingData2ApplicationResourcePerformanceRow { duration = 999 } ); // http://stackoverflow.com/questions/1107868/linq-min-max // http://csharpbasic.blogspot.com/2008/08/exploring-linq-functions-select-min-max.html // http://blogs.msdn.com/b/mattwar/archive/2008/07/08/linq-building-an-iqueryable-provider-part-x.aspx // http://oakleafblog.blogspot.com/2008/07/linq-and-entity-framework-posts-for_14.html //var min = new PerformanceResourceTimingData2.ApplicationResourcePerformance().Min(k => k.duration); // https://sites.google.com/a/jsc-solutions.net/backlog/knowledge-base/2014/20140705/20140712 var e = from z in new PerformanceResourceTimingData2ApplicationResourcePerformance() // .AsEnumerable() group z by 1 into gg select new { Min = gg.Min(k => k.duration), Max = gg.Max(k => k.duration), Average = gg.Average(k => k.duration), Count = gg.Count(), Sum = gg.Sum(k => k.duration) //max = z.duration.Max(), //avg = z.duration.Average(), }; // select 0 as foo, // min(s.`duration`) as `Min`, // max(s.`duration`) as `Max`, // avg(s.`duration`) as `Average`, // count(*) as `Count`, // sum(s.`duration`) as `Sum` //from(select g.`Grouping.Key`, // g.`Min` as `Min`, // g.`Max` as `Max`, // g.`Average` as `Average`, // g.`Count` as `Count`, // g.`Sum` as `Sum` // from( // select 1 as `Grouping.Key`, // min(s.`duration`) as `Min`, // max(s.`duration`) as `Max`, // avg(s.`duration`) as `Average`, // count(*) as `Count`, // sum(s.`duration`) as `Sum` // from `PerformanceResourceTimingData2.ApplicationResourcePerformance` as s // group by `Grouping.Key` // ) as g // ) as s //before Fill //ScriptCoreLib.Extensions::ScriptCoreLib.Shared.Data.Diagnostics.WithConnectionLambda.WithConnection // error: { // Message = no such column: s.duration, ex = System.Data.SQLite.SQLiteSyntaxException(0x80004005): no such column: // s.duration //before Fill //ScriptCoreLib.Extensions::ScriptCoreLib.Shared.Data.Diagnostics.WithConnectionLambda.WithConnection // error: { // Message = no such column: s.duration, ex = System.Data.SQLite.SQLiteSyntaxException(0x80004005): no such column: // s.duration // [0] = { Min = 44, Max = 999, Average = 521.5, Count = 2 } //GroupBy { keySelector = z => 1 } //Select { selector = g => new <> f__AnonymousType0`1(Count = g.Count()) } //error: // { // Message = Object reference not set to an instance of an object., ex = System.NullReferenceException: Object reference not set to an instance of an object. // at System.Data.QueryStrategyOfTRowExtensions.<> c__DisplayClass12`3.< GroupBy > b__8(CommandBuilderState state) in x:\jsc.svn\core\ScriptCoreLib.Extensions\ScriptCoreLib.Extensions\Shared\Data\Diagnostics\QueryStrategyOfTRowExtensions.GroupBy.cs:line 298 // https://sites.google.com/a/jsc-solutions.net/backlog/knowledge-base/2014/201405/20140518-1/roslyn // what about generic AsEnumerable ? var a = e.AsDataTable(); // select g.`Grouping.Key`, // g.`Count` as `Count` //from( // select 1 as `Grouping.Key`, // count(*) as `Count` // from `PerformanceResourceTimingData2.ApplicationResourcePerformance` as s // group by `Grouping.Key` //) as g //select g.`Grouping.Key`, // g.`Count` as `Count`, // g.`Sum` as `Sum` //from( // select 1 as `Grouping.Key`, // count(*) as `Count`, // sum(s.`duration`) as `Sum` // from `PerformanceResourceTimingData2.ApplicationResourcePerformance` as s // group by `Grouping.Key` //) as g Debugger.Break(); }