Example #1
0
 public DSTDContext(Server server, string requestHeader, Action<Page, Guid> g, Action<Guid, Dictionary<string, object>, Dictionary<string, object>> o, Page.GetApplication p)
 {
     OnGrabSession += g;
     myServer = server;
     OnSetSession += o;
     DSTDQuery query = new DSTDQuery(getURL(requestHeader));
     XmlDocument doc = getXML(requestHeader);
     Request = new DSTDRequest(this,query, doc,p);
     Request.Start();
 }
Example #2
0
 public DSTDRequest(DSTDContext that, DSTDQuery q, XmlDocument state, Page.GetApplication p)
 {
     Context = that;
     State = state;
     Query = q;
     getApplication = p;
     Page h;
     if (File.Exists(Context.myServer.localDirectory + Query.File.TrimStart('/') + ".dstd")) {
         CompileDSTD compile = CompileDSTD.CompileDSTDPage(Context, Context.myServer.localDirectory + Query.File.TrimStart('/'), Query.File.TrimStart('/'));
         h = (Page)compile.Compiled;
     }
     else {
         return;
     }
     h.UserQuery = q.UserQuery;
     CurrentPage = h;
 }
Example #3
0
 public void TransferToPage(string Page)
 {
     DSTDQuery q = new DSTDQuery(Page);
     DSTDRequest r = new DSTDRequest(this.Context, q, null, getApplication);
     r.CurrentPage.FullRender = false;
     r.CurrentPage.CurrentGUID = this.CurrentPage.CurrentGUID;
     r.CurrentPage.IsPostBack = false;
     r.Start();
     r.CurrentPage.PanelToUpdate = "theBody";
     CurrentPage = r.CurrentPage;
 }
Example #4
0
        private void ReadHeader(Socket sock, DSTDData ds)
        {
            string d = ds.sb.ToString();
            if (d.Contains("<top>") && !d.Contains("</top>"))
                d += "</top>";

            DSTDQuery q = new DSTDQuery(DSTDContext.getURL(d));

            if (q.File.TrimStart('/')=="favicon.ico")
                return;

            localDirectory = Directory.GetCurrentDirectory() + "\\";
            if (File.Exists(localDirectory + q.File.TrimStart('/'))) {
                StreamReader sr = new StreamReader(File.OpenRead(localDirectory + q.File.TrimStart('/')));
                writeBack(sr.ReadToEnd(), sock);
                sr.Close();
                return;
            }
            //K:\My Applications\Sals\WebServer\WebServer\
            if (File.Exists(@"" + q.File.TrimStart('/'))) {
                StreamReader sr = new StreamReader(File.OpenRead(@"" + q.File.TrimStart('/')));
                writeBack(sr.ReadToEnd(), sock);
                sr.Close();
                return;
            }

            DSTDContext context = new DSTDContext(this,ds.sb.ToString(), GrabSession, SetSession, GrabApplication);
            string str = context.Request.CurrentPage.OnRender();

            string ty = "";
            if (context.Request.CurrentPage.PanelToUpdate != "" || !context.Request.CurrentPage.FullRender )
                ty = "text/xml";
            else
                ty = "text/html";

            context.SetSession(context.Request.CurrentPage.CurrentGUID, context.Request.CurrentPage.Session, context.Request.CurrentPage.GetPrivateSession());

            string s = GetHeader(str.Length, "200", ty);
            s += str;
            writeBack(s, sock);
            ds.Start.Stop();
            average += ds.Start.Elapsed.TotalMilliseconds;
            averagecount++;
            Console.WriteLine(ds.Start.Elapsed.TotalMilliseconds.ToString() + "       " + (average / averagecount));
        }