Beispiel #1
0
        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);
            }
        }
Beispiel #3
0
        /// <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);
            }
        }
Beispiel #4
0
 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);
         }
     }
 }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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
        }
Beispiel #8
0
        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
        }
Beispiel #9
0
        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"));
        }