89 lines
2.7 KiB
C#
Executable File
89 lines
2.7 KiB
C#
Executable File
using System;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
|
|
using MBS.Web;
|
|
using Mocha.Core;
|
|
using Mocha.OMS;
|
|
|
|
namespace Mocha.Web.MasterPages
|
|
{
|
|
public partial class Blank : MasterPage
|
|
{
|
|
public bool AutoConnectOMS { get; set; } = true;
|
|
public bool OMSAvailable { get; set; } = false;
|
|
|
|
protected override void OnInit(EventArgs e)
|
|
{
|
|
base.OnInit(e);
|
|
|
|
string ThemeName = System.Configuration.ConfigurationManager.AppSettings["Tenant.Default.Theme"] ?? "Slate";
|
|
|
|
this.RegisterScript(String.Format("~/Themes/{0}/Theme.js", ThemeName));
|
|
this.RegisterStyleSheet(String.Format("~/Themes/{0}/Theme.css", ThemeName));
|
|
this.RegisterStyleSheet("~/StyleSheets/mcx.css");
|
|
|
|
this.RegisterScript("~/Scripts/Mocha.js");
|
|
this.RegisterScript("~/Scripts/Instance.js");
|
|
this.RegisterScript("~/Scripts/InstanceKey.js");
|
|
this.RegisterScript("~/Scripts/InstanceBrowser.js");
|
|
this.RegisterScript("~/Scripts/Page.js");
|
|
this.RegisterScript("~/Scripts/PageBuilder.js");
|
|
this.RegisterScript("~/Scripts/SummaryPageComponent.js");
|
|
|
|
// can we connect to the OMS?
|
|
if (AutoConnectOMS)
|
|
{
|
|
SessionContext sess = (this.GetTenantedVariable("SessionContext") as SessionContext);
|
|
if (sess == null)
|
|
{
|
|
sess = new SessionContext();
|
|
sess.TenantName = this.GetCurrentTenantName();
|
|
sess.ApplicationPath = Request.ApplicationPath;
|
|
this.SetTenantedVariable("SessionContext", sess);
|
|
}
|
|
|
|
Oms oms = sess.GetOms();
|
|
if (oms != null && oms.IsConnected)
|
|
{
|
|
oms.TenantName = this.GetCurrentTenantName();
|
|
oms.Environment.StorageProvider.DefaultTenantName = oms.TenantName;
|
|
}
|
|
this.SetTenantedVariable("OMS", oms);
|
|
|
|
OMSAvailable = (oms != null && oms.IsConnected);
|
|
|
|
if (OMSAvailable)
|
|
{
|
|
aspcContent.Visible = true;
|
|
|
|
Instance instTenant = oms.GetTenantInstance();
|
|
if (instTenant != null)
|
|
{
|
|
Instance instTenantIconImage = oms.GetRelatedInstance(instTenant, KnownRelationshipGuids.Tenant__has_icon_image__File);
|
|
if (instTenantIconImage != null)
|
|
{
|
|
System.Web.UI.HtmlControls.HtmlLink link = new System.Web.UI.HtmlControls.HtmlLink();
|
|
link.Attributes.Add("rel", "shortcut icon");
|
|
link.Attributes.Add("href", sess.GetAttachmentUrl(instTenantIconImage, this.Page.GetOmsAttachmentEntropy()));
|
|
Page.Header.Controls.Add(link);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Request.Url.Segments.Length > 2 && Request.Url.Segments[2] == "inst/")
|
|
{
|
|
Response.Clear();
|
|
Response.Status = "503 Service Unavailable";
|
|
Response.ContentType = "application/json";
|
|
Response.Write("{ \"code\": 503, \"title\": \"Service Unavailable\", \"description\": \"OMS service is not running\" }");
|
|
Response.End();
|
|
}
|
|
aspcContent.Visible = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|