Files
17168ERP/web/App_Code/Sites.cs
2025-08-29 01:27:25 +08:00

84 lines
2.3 KiB
C#

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for Sites
/// </summary>
public static class Sites
{
public static List<Site> sites = new List<Site>();
public static SiteResource resource = new SiteResource();
private static string appurl
{
get
{
return HttpContext.Current.Server.MapPath("~");
}
}
private static string site_host
{
get
{
string host = HttpContext.Current.Request.Url.Host;
string r = "default";
var h = sites.FirstOrDefault(q=>q.url == host);
if (h != null) { r = h.folder; }
return r;
}
}
private static string site_root
{
get
{
string r = "";
r = appurl;
return HttpContext.Current.Server.MapPath("~");
}
}
public static double MaxAge = 3600 * 24 * 365;
static Sites()
{
JObject o=get_jsonfile(@"sites\sites-config.json");
sites = o["sites"].ToObject<List<Site>>();
resource = o["resource"].ToObject<SiteResource>();
//resource.Add(new KeyValuePair<string, string>("assets", "assets"));
//resource.Add(new KeyValuePair<string, string>("config", "config"));
}
private static JObject get_jsonfile(string jsonfile)
{
JObject o;
//string appurl = HttpContext.Current.Server.MapPath("~");
string path = Path.Combine(appurl, jsonfile);
o = JObject.Parse(File.ReadAllText(path));
return o;
}
public static string get_url(string path, string url)
{
string r="";
char s = Path.DirectorySeparatorChar;
url = url.Replace('/', s);
r = $@"{appurl}sites{s}{site_host}{s}{path}{s}{url}";
return r;
}
}
public class Site
{
public string url { get; set; }
public string folder { get; set; }
public string connection { get; set; }
public string title { get; set; }
}
public class SiteResource
{
public string assets { get; set; }
public string config { get; set; }
public string modules { get; set; }
public string upload { get; set; }
}