protected override JsonApplication JsonApplicationCreate() { JsonApplication result = new JsonApplication(); result.Session = Guid.NewGuid(); // new GridKeyboard(result, "GridKeyboard"); var container = new LayoutContainer(result, "Container"); var rowHeader = new LayoutRow(container, "Header"); var cellHeader1 = new LayoutCell(rowHeader, "HeaderCell1"); new GridField(cellHeader1, "Field", null, null, null); var rowContent = new LayoutRow(container, "Content"); var cellContent1 = new LayoutCell(rowContent, "ContentCell1"); new Grid(cellContent1, "Master", "Master"); var cellContent2 = new LayoutCell(rowContent, "ContentCell2"); new Grid(cellContent2, "Detail", "Detail"); var rowFooter = new LayoutRow(container, "Footer"); var cellFooter = new LayoutCell(rowFooter, "FooterCell1"); var button = new Button(cellFooter, "Hello"); // var gridData = new GridData(); gridData.LoadToJsonGrid("Master", typeof(Database.dbo.TableName)); gridData.ColumnList["Master"].Where(item => item.FieldName == "TableName2").First().IsUpdate = true; gridData.LoadToJsonGrid("Detail", typeof(Database.dbo.AirportDisplay)); result.GridData = gridData; // return(result); }
public JsonApplication Applist() { List <LinkViewModel> linklistobj = new List <LinkViewModel>(); JsonApplication jsonApplication = new JsonApplication(); try { var App = _links.ApplicationCategory(); foreach (var item in App) { LinkViewModel linkOBJ = new LinkViewModel(); linkOBJ.Name = item.Title; linkOBJ.Icon = item.Icon; linkOBJ.UrL = item.Url; linklistobj.Add(linkOBJ); } jsonApplication.Result = linklistobj; return(jsonApplication); } catch (Exception ex) { string Mes = ex.Message; return(jsonApplication); } }
/// <summary> /// Returns server side rendered index.html. /// </summary> private async Task <string> HtmlUniversal(string html, JsonApplication jsonApplication, bool isUniversal) { if (isUniversal == false) { return(html); } else { string htmlUniversal = null; string url = "http://" + Request.Host.ToUriComponent() + "/Universal/index.js"; jsonApplication.IsBrowser = false; // Server side rendering mode. string jsonText = Framework.Server.Json.Util.Serialize(jsonApplication); htmlUniversal = await Post(url, jsonText, false); // Call Angular Universal server side rendering service. if (htmlUniversal == null) { url = "http://localhost:1337/"; // Application not running on IIS. Divert to UniversalExpress when running in Visual Studio. htmlUniversal = await Post(url, jsonText, true); Util.Assert(htmlUniversal != "<app></app>"); // Catch java script errors. See UniversalExpress console for errors! } // string result = null; // Replace <app> on index.html { int indexBegin = htmlUniversal.IndexOf("<app>"); int indexEnd = htmlUniversal.IndexOf("</app>") + "</app>".Length; string htmlUniversalClean = htmlUniversal.Substring(indexBegin, (indexEnd - indexBegin)); result = html.Replace("<app>Loading AppComponent content here ...</app>", htmlUniversalClean); } jsonApplication.IsBrowser = true; // Client side rendering mode. string jsonTextBrowser = Framework.Server.Json.Util.Serialize(jsonApplication); string resultAssert = result; // Add json to index.html (Client/index.html) { string scriptFind = "System.import('app').catch(function(err){ console.error(err); });"; string scriptReplace = "var browserJson = " + jsonTextBrowser + "; " + scriptFind; result = result.Replace(scriptFind, scriptReplace); } // Add json to index.html (Server/indexBundle.html) { string scriptFind = "function downloadJSAtOnload() {"; string scriptReplace = "var browserJson = " + jsonTextBrowser + ";\r\n" + scriptFind; result = result.Replace(scriptFind, scriptReplace); } Util.Assert(resultAssert != result, "Adding browserJson failed!"); return(result); } }
protected override void ProcessGridIsClick(JsonApplication jsonApplicationOut) { foreach (GridRow gridRow in jsonApplicationOut.GridData.RowList["Master"]) { if (gridRow.IsClick) { var list = jsonApplicationOut.GridData.LoadFromJson("Master", typeof(ApplicationX)).Cast <Database.dbo.TableName>(); string tableName = list.ElementAt(int.Parse(gridRow.Index)).TableName2; // string tableName = jsonApplicationOut.GridData.CellList["Master"]["TableName2"][gridRow.Index].V as string; tableName = tableName.Substring(tableName.IndexOf(".") + 1); Type typeRow = Framework.Server.DataAccessLayer.Util.TypeRowFromTableName(tableName, typeof(ApplicationX)); jsonApplicationOut.GridData.LoadToJsonGrid("Detail", typeRow); } } }
internal static Application FromJsonApplication(JsonApplication japp) { if (japp == null) { return(null); } Application app = new Application(japp.Name); if (japp.Instances != null) { foreach (var instance in japp.Instances) { var inst = InstanceInfo.FromJsonInstance(instance); app.Add(inst); } } return(app); }
public async Task <IActionResult> Web() { // Html if (HttpContext.Request.Path == path) { JsonApplication jsonApplicationOut = new Application.ApplicationX().Process(null, HttpContext.Request.Path); string htmlUniversal = null; string html = IndexHtml(true); htmlUniversal = await HtmlUniversal(html, jsonApplicationOut, true); // Angular Universal server side rendering. return(Content(htmlUniversal, "text/html")); } // Json API if (HttpContext.Request.Path == path + "Application.json") { string jsonInText = Util.StreamToString(Request.Body); JsonApplication jsonApplicationIn = Framework.Server.Json.Util.Deserialize <JsonApplication>(jsonInText); JsonApplication jsonApplicationOut = new Application.ApplicationX().Process(jsonApplicationIn, HttpContext.Request.Path); jsonApplicationOut.IsJsonGet = false; string jsonOutText = Framework.Server.Json.Util.Serialize(jsonApplicationOut); if (Framework.Server.Config.Instance.IsDebugJson) { jsonApplicationOut.IsJsonGet = true; string jsonOutDebug = Framework.Server.Json.Util.Serialize(jsonApplicationOut); Framework.Util.FileWrite(Framework.Util.FolderName + "Submodule/Client/Application.json", jsonOutDebug); } return(Content(jsonOutText, "application/json")); } // node_modules if (HttpContext.Request.Path.ToString().StartsWith("/node_modules/")) { return(Util.FileGet(this, "", "../Client/", "Universal/")); } // (*.css; *.js) if (HttpContext.Request.Path.ToString().EndsWith(".css") || HttpContext.Request.Path.ToString().EndsWith(".js")) { return(Util.FileGet(this, "", "Universal/", "Universal/")); } return(NotFound()); }
public void Deserialize_GoodJson() { var json = @" { 'name':'FOO', 'instance':[{ 'instanceId':'localhost:foo', 'hostName':'localhost', 'app':'FOO', 'ipAddr':'192.168.56.1', 'status':'UP', 'overriddenstatus':'UNKNOWN', 'port':{'$':8080,'@enabled':'true'}, 'securePort':{'$':443,'@enabled':'false'}, 'countryId':1, 'dataCenterInfo':{'@class':'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo','name':'MyOwn'}, 'leaseInfo':{'renewalIntervalInSecs':30,'durationInSecs':90,'registrationTimestamp':1457714988223,'lastRenewalTimestamp':1457716158319,'evictionTimestamp':0,'serviceUpTimestamp':1457714988223}, 'metadata':{'@class':'java.util.Collections$EmptyMap'}, 'homePageUrl':'http://localhost:8080/', 'statusPageUrl':'http://localhost:8080/info', 'healthCheckUrl':'http://localhost:8080/health', 'vipAddress':'foo', 'isCoordinatingDiscoveryServer':'false', 'lastUpdatedTimestamp':'1457714988223', 'lastDirtyTimestamp':'1457714988172', 'actionType':'ADDED' }] }"; Stream stream = TestHelpers.StringToStream(json); var result = JsonApplication.Deserialize(stream); Assert.NotNull(result); Assert.Equal("FOO", result.Name); Assert.NotNull(result.Instances); Assert.Equal(1, result.Instances.Count); // Rest is validated by JsonInstanceInfoTest }
public void Deserialize_GoodJson() { var json = @" { ""name"":""FOO"", ""instance"":[{ ""instanceId"":""localhost:foo"", ""hostName"":""localhost"", ""app"":""FOO"", ""ipAddr"":""192.168.56.1"", ""status"":""UP"", ""overriddenstatus"":""UNKNOWN"", ""port"":{""$"":8080,""@enabled"":""true""}, ""securePort"":{""$"":443,""@enabled"":""false""}, ""countryId"":1, ""dataCenterInfo"":{""@class"":""com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo"",""name"":""MyOwn""}, ""leaseInfo"":{""renewalIntervalInSecs"":30,""durationInSecs"":90,""registrationTimestamp"":1457714988223,""lastRenewalTimestamp"":1457716158319,""evictionTimestamp"":0,""serviceUpTimestamp"":1457714988223}, ""metadata"":{""@class"":""java.util.Collections$EmptyMap""}, ""homePageUrl"":""http://localhost:8080/"", ""statusPageUrl"":""http://localhost:8080/info"", ""healthCheckUrl"":""http://localhost:8080/health"", ""vipAddress"":""foo"", ""isCoordinatingDiscoveryServer"":""false"", ""lastUpdatedTimestamp"":""1457714988223"", ""lastDirtyTimestamp"":""1457714988172"", ""actionType"":""ADDED"" }] }"; var stream = TestHelpers.StringToStream(json); var result = JsonApplication.Deserialize(stream); Assert.NotNull(result); Assert.Equal("FOO", result.Name); Assert.NotNull(result.Instances); Assert.Equal(1, result.Instances.Count); // Rest is validated by JsonInstanceInfoTest }
public void FromJsonApplications_Correct() { JsonInstanceInfo jinfo = new JsonInstanceInfo() { InstanceId = "InstanceId", AppName = "myApp", AppGroupName = "AppGroupName", IpAddr = "IpAddr", Sid = "Sid", Port = new JsonInstanceInfo.JsonPortWrapper(true, 100), SecurePort = new JsonInstanceInfo.JsonPortWrapper(false, 100), HomePageUrl = "HomePageUrl", StatusPageUrl = "StatusPageUrl", HealthCheckUrl = "HealthCheckUrl", SecureHealthCheckUrl = "SecureHealthCheckUrl", VipAddress = "VipAddress", SecureVipAddress = "SecureVipAddress", CountryId = 1, DataCenterInfo = new JsonInstanceInfo.JsonDataCenterInfo(string.Empty, "MyOwn"), HostName = "HostName", Status = InstanceStatus.DOWN, OverriddenStatus = InstanceStatus.OUT_OF_SERVICE, LeaseInfo = new JsonLeaseInfo() { RenewalIntervalInSecs = 1, DurationInSecs = 2, RegistrationTimestamp = 1457973741708, LastRenewalTimestamp = 1457973741708, LastRenewalTimestampLegacy = 1457973741708, EvictionTimestamp = 1457973741708, ServiceUpTimestamp = 1457973741708 }, IsCoordinatingDiscoveryServer = false, Metadata = new Dictionary <string, string>() { { "@class", "java.util.Collections$EmptyMap" } }, LastUpdatedTimestamp = 1457973741708, LastDirtyTimestamp = 1457973741708, Actiontype = ActionType.ADDED, AsgName = "AsgName" }; JsonApplication japp = new JsonApplication() { Name = "myApp", Instances = new List <JsonInstanceInfo> { jinfo } }; JsonApplications japps = new JsonApplications() { AppsHashCode = "AppsHashCode", VersionDelta = 1L, Applications = new List <JsonApplication>() { japp } }; Applications apps = Applications.FromJsonApplications(japps); Assert.Equal("AppsHashCode", apps.AppsHashCode); Assert.Equal(1, apps.Version); Assert.NotNull(apps.ApplicationMap); Assert.Single(apps.ApplicationMap); Application app = apps.GetRegisteredApplication("myApp"); // Verify Assert.NotNull(app); Assert.Equal("myApp", app.Name); Assert.NotNull(app.Instances); Assert.Equal(1, app.Count); Assert.Equal(1, app.Instances.Count); Assert.NotNull(app.GetInstance("InstanceId")); InstanceInfo info = app.GetInstance("InstanceId"); Assert.Equal("InstanceId", info.InstanceId); Assert.Equal("myApp", info.AppName); Assert.Equal("AppGroupName", info.AppGroupName); Assert.Equal("IpAddr", info.IpAddr); Assert.Equal("Sid", info.Sid); Assert.Equal(100, info.Port); Assert.True(info.IsUnsecurePortEnabled); Assert.Equal(100, info.SecurePort); Assert.False(info.IsSecurePortEnabled); Assert.Equal("HomePageUrl", info.HomePageUrl); Assert.Equal("StatusPageUrl", info.StatusPageUrl); Assert.Equal("HealthCheckUrl", info.HealthCheckUrl); Assert.Equal("SecureHealthCheckUrl", info.SecureHealthCheckUrl); Assert.Equal("VipAddress", info.VipAddress); Assert.Equal("SecureVipAddress", info.SecureVipAddress); Assert.Equal(1, info.CountryId); Assert.Equal("MyOwn", info.DataCenterInfo.Name.ToString()); Assert.Equal("HostName", info.HostName); Assert.Equal(InstanceStatus.DOWN, info.Status); Assert.Equal(InstanceStatus.OUT_OF_SERVICE, info.OverriddenStatus); Assert.NotNull(info.LeaseInfo); Assert.Equal(1, info.LeaseInfo.RenewalIntervalInSecs); Assert.Equal(2, info.LeaseInfo.DurationInSecs); Assert.Equal(635935705417080000L, info.LeaseInfo.RegistrationTimestamp); Assert.Equal(635935705417080000L, info.LeaseInfo.LastRenewalTimestamp); Assert.Equal(635935705417080000L, info.LeaseInfo.LastRenewalTimestampLegacy); Assert.Equal(635935705417080000L, info.LeaseInfo.EvictionTimestamp); Assert.Equal(635935705417080000L, info.LeaseInfo.ServiceUpTimestamp); Assert.False(info.IsCoordinatingDiscoveryServer); Assert.NotNull(info.Metadata); Assert.Empty(info.Metadata); Assert.Equal(635935705417080000L, info.LastUpdatedTimestamp); Assert.Equal(635935705417080000L, info.LastDirtyTimestamp); Assert.Equal(ActionType.ADDED, info.Actiontype); Assert.Equal("AsgName", info.AsgName); }
public void FromJsonApplications_WithMissingInstanceId() { var jinfo = new JsonInstanceInfo() { // InstanceId = "InstanceId", AppName = "myApp", AppGroupName = "AppGroupName", IpAddr = "IpAddr", Sid = "Sid", Port = new JsonInstanceInfo.JsonPortWrapper(true, 100), SecurePort = new JsonInstanceInfo.JsonPortWrapper(false, 100), HomePageUrl = "HomePageUrl", StatusPageUrl = "StatusPageUrl", HealthCheckUrl = "HealthCheckUrl", SecureHealthCheckUrl = "SecureHealthCheckUrl", VipAddress = "VipAddress", SecureVipAddress = "SecureVipAddress", CountryId = 1, DataCenterInfo = new JsonInstanceInfo.JsonDataCenterInfo(string.Empty, "MyOwn"), HostName = "HostName", Status = InstanceStatus.DOWN, OverriddenStatus = InstanceStatus.OUT_OF_SERVICE, LeaseInfo = new JsonLeaseInfo() { RenewalIntervalInSecs = 1, DurationInSecs = 2, RegistrationTimestamp = 1457973741708, LastRenewalTimestamp = 1457973741708, LastRenewalTimestampLegacy = 1457973741708, EvictionTimestamp = 1457973741708, ServiceUpTimestamp = 1457973741708 }, IsCoordinatingDiscoveryServer = false, Metadata = new Dictionary <string, string>() { { "@class", "java.util.Collections$EmptyMap" } }, LastUpdatedTimestamp = 1457973741708, LastDirtyTimestamp = 1457973741708, Actiontype = ActionType.ADDED, AsgName = "AsgName" }; var japp = new JsonApplication() { Name = "myApp", Instances = new List <JsonInstanceInfo> { jinfo } }; var japps = new JsonApplications() { AppsHashCode = "AppsHashCode", VersionDelta = 1L, Applications = new List <JsonApplication>() { japp } }; var apps = Applications.FromJsonApplications(japps); Assert.Equal("AppsHashCode", apps.AppsHashCode); Assert.Equal(1, apps.Version); Assert.NotNull(apps.ApplicationMap); Assert.Single(apps.ApplicationMap); var app = apps.GetRegisteredApplication("myApp"); // Verify Assert.NotNull(app); Assert.Equal("myApp", app.Name); Assert.NotNull(app.Instances); Assert.Equal(1, app.Count); Assert.Equal(1, app.Instances.Count); Assert.Null(app.GetInstance("InstanceId")); }