From 54ccca1e2cb8af5d0fdc420f64574a7d7b13c94b Mon Sep 17 00:00:00 2001
From: Jeff Ames
Date: Tue, 31 Mar 2009 02:00:33 +0000
Subject: Update svn properties, add copyright header, formatting cleanup.
---
bin/HttpServer_OpenSim.xml | 14038 +++++++++++++++++++++----------------------
1 file changed, 7019 insertions(+), 7019 deletions(-)
(limited to 'bin/HttpServer_OpenSim.xml')
diff --git a/bin/HttpServer_OpenSim.xml b/bin/HttpServer_OpenSim.xml
index a9ac538..747f35d 100644
--- a/bin/HttpServer_OpenSim.xml
+++ b/bin/HttpServer_OpenSim.xml
@@ -1,7019 +1,7019 @@
-
-
-
- HttpServer_OpenSim
-
-
-
-
- Cookies that should be set.
-
-
-
-
- Adds a cookie in the collection.
-
- cookie to add
- cookie is null
-
-
-
- Copy a request cookie
-
-
- When the cookie should expire
-
-
-
- Gets a collection enumerator on the cookie list.
-
- collection enumerator
-
-
-
- Remove all cookies
-
-
-
-
- Returns an enumerator that iterates through the collection.
-
-
-
- A that can be used to iterate through the collection.
-
- 1
-
-
-
- Gets the count of cookies in the collection.
-
-
-
-
- Gets the cookie of a given identifier (null if not existing).
-
-
-
-
- Generates C#/HTML from HAML code.
-
- HAML documentation: http://haml.hamptoncatlin.com/docs/rdoc/classes/Haml.html
-
-
-
- A code generator is used to convert template code to something that we can
- work with, as HTML or c# code.
-
-
-
-
-
- Generate C# code from the template.
-
- A that the generated code will be written to.
- If the template have not been parsed first.
- If template is incorrect
-
-
-
- Parse a file and convert into to our own template object code.
-
- Path and filename to a template
- If something is incorrect in the template.
-
-
-
-
-
-
-
-
- Parse a file and convert into to our own template object code.
-
- A containing our template
- If something is incorrect in the template.
-
-
-
- Initializes a new instance of the class.
-
-
-
-
- Initializes a new instance of the class.
-
- The log writer.
-
-
-
- Check and validate indentation
-
- line to check
- number of white spaces
- number of indentations (2 white spaces = 1 intend, 1 tab = 1 intend)
-
-
-
- Check indentation
-
- fills line with intend info
-
-
-
- check if current line is a multi line
-
- previous line
- current line
-
-
-
- Generate HTML code from the template.
- Code is encapsulated in <% and <%=
-
- A that the generated code will be written to.
- If the template have not been parsed first.
- If template is incorrect
-
-
-
- Get the first word (letters and digits only) from the specified offset.
-
-
-
-
-
-
-
- Check indentation / node placement
-
-
-
-
- Parse a node
- todo: improve doc
-
-
-
-
-
-
-
-
- PreParse goes through the text add handles indentation
- and all multi line cases.
-
- Reader containing the text
-
-
-
- print the entire document
-
-
-
-
- Print line information to the console
-
-
-
-
-
- Read next line from file
-
- true if line could be read; false if EOF.
-
-
-
- Generates a string with spaces.
-
- number of spaces.
- string of spaces.
-
-
-
- Parse a file and convert into to our own template object code.
-
- Path and filename to a template
- If something is incorrect in the template.
-
-
-
-
-
-
-
-
-
- Parse a file and convert into to our own template object code.
-
- A containing our template
- If something is incorrect in the template.
-
-
-
- Generate C# code from the template.
-
- A that the generated code will be written to.
- If the template have not been parsed first.
- If template is incorrect
-
-
-
- Property to retrieve the root node for the latest parsed document
-
-
-
-
- Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules
- a regular expression can be used to identify redirect urls and thier targets.
-
-
- [a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase)
- ]]>
-
-
-
-
- redirects from one url to another.
-
-
-
-
- Rules are used to perform operations before a request is being handled.
- Rules can be used to create routing etc.
-
-
-
-
- Process the incoming request.
-
- incoming http request
- outgoing http response
- true if response should be sent to the browser directly (no other rules or modules will be processed).
-
- returning true means that no modules will get the request. Returning true is typically being done
- for redirects.
-
- If request or response is null.
-
-
-
- Initializes a new instance of the class.
-
- Absolute path (no servername)
- Absolute path (no servername)
-
- server.Add(new RedirectRule("/", "/user/index"));
-
-
-
-
- Initializes a new instance of the class.
-
- Absolute path (no servername)
- Absolute path (no servername)
- true if request should be redirected, false if the request uri should be replaced.
-
- server.Add(new RedirectRule("/", "/user/index"));
-
-
-
-
- Process the incoming request.
-
- incoming http request
- outgoing http response
- true if response should be sent to the browser directly (no other rules or modules will be processed).
-
- returning true means that no modules will get the request. Returning true is typically being done
- for redirects.
-
-
-
-
- string to match request url with.
-
- Is compared to request.Uri.AbsolutePath
-
-
-
- Where to redirect.
-
-
-
-
- true if we should redirect.
-
-
- false means that the rule will replace
- the current request uri with the new one from this class.
-
-
-
-
- Initializes a new instance of the class.
-
- Expression to match url
- Expression to generate url
-
- [a-zA-Z0-9]+)", "/user/${first}"));
- Result of ie. /employee1 will then be /user/employee1
- ]]>
-
-
-
-
- Initializes a new instance of the class.
-
- Expression to match url
- Expression to generate url
- Regular expression options to use, can be null
-
- [a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase));
- Result of ie. /employee1 will then be /user/employee1
- ]]>
-
-
-
-
- Initializes a new instance of the class.
-
- Expression to match url
- Expression to generate url
- Regular expression options to apply
- true if request should be redirected, false if the request uri should be replaced.
-
- [a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None));
- Result of ie. /employee1 will then be /user/employee1
- ]]>
-
-
-
-
- Process the incoming request.
-
- incoming http request
- outgoing http response
- true if response should be sent to the browser directly (no other rules or modules will be processed).
-
- returning true means that no modules will get the request. Returning true is typically being done
- for redirects.
-
- If request or response is null
-
-
-
- Interface used to load templates from different sources.
-
-
-
-
- Load a template into a and return it.
-
- Relative path (and filename) to template.
- a if file was found; otherwise null.
-
-
-
- Fetch all files from the resource that matches the specified arguments.
-
- Where the file should reside.
- Files to check
- a list of files if found; or an empty array if no files are found.
-
-
-
- Check's whether a template should be reloaded or not.
-
- template information
- true if template is OK; false if it do not exist or are old.
-
-
-
- Returns whether or not the loader has an instance of the file requested
-
- The name of the template/file
- True if the loader can provide the file
-
-
-
- Webhelper provides helpers for common tasks in HTML.
-
-
-
-
- Used to let the website use different javascript libraries.
- Default is
-
-
-
-
- Creates a link that invokes through ajax.
-
- url to fetch
- link title
-
- optional options in format "key, value, key, value".
- Javascript options starts with ':'.
-
- a link tag
-
- WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');");
-
-
-
-
- Builds a link that updates an element with the fetched ajax content.
-
- Url to fetch content from
- link title
- html element to update with the results of the ajax request.
- optional options in format "key, value, key, value"
- A link tag.
-
-
-
- A link that pop ups a Dialog (overlay div)
-
- url to contents of dialog
- link title
- name/value of html attributes.
- A "a"-tag that popups a dialog when clicked
-
- WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
-
-
-
-
- Create/Open a dialog box using ajax
-
-
-
-
-
-
-
-
- Close a javascript dialog window/div.
-
- javascript for closing a dialog.
-
-
-
-
- Create a <form> tag.
-
- name of form
- action to invoke on submit
- form should be posted as ajax
- html code
-
- WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
-
-
-
-
- Create a link tag.
-
- url to go to
- link title (text that is displayed)
- html attributes, name, value, name, value
- html code
-
- WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
-
-
-
-
- Build a link
-
- url to go to.
- title of link (displayed text)
- extra html attributes.
- a complete link
-
-
-
- Build a link
-
- url to go to.
- title of link (displayed text)
- extra html attributes.
- a complete link
- more options
-
-
-
- Obsolete
-
- Obsolete
- Obsolete
- Obsolete
- Obsolete
- Obsolete
- Obsolete
-
-
-
- Obsolete
-
- Obsolete
- Obsolete
- Obsolete
- Obsolete
- Obsolete
- Obsolete
- Obsolete
-
-
-
- Render errors into a UL with class "errors"
-
- class used by UL-tag.
- items to list
- an unordered html list.
-
-
-
- Render errors into a UL with class "errors"
-
- class used by UL-tag.
- items to list
- an unordered html list.
-
-
-
- Render errors into a UL with class "errors"
-
-
-
-
-
-
- Generates a list with html attributes.
-
- StringBuilder that the options should be added to.
- attributes set by user.
- attributes set by any of the helper classes.
-
-
-
- Generates a list with html attributes.
-
- StringBuilder that the options should be added to.
-
-
-
-
- Purpose of this class is to create a javascript toolkit independent javascript helper.
-
-
-
-
- Generates a list with JS options.
-
- StringBuilder that the options should be added to.
- the javascript options. name, value pairs. each string value should be escaped by YOU!
- true if we should start with a comma.
-
-
-
- Removes any javascript parameters from an array of parameters
-
- The array of parameters to remove javascript params from
- An array of html parameters
-
-
-
- javascript action that should be added to the "onsubmit" event in the form tag.
-
-
- All javascript option names should end with colon.
-
-
- JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
-
-
-
-
-
- Requests a url through ajax
-
- url to fetch
- optional options in format "key, value, key, value", used in JS request object.
- a link tag
- All javascript option names should end with colon.
-
-
- JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
-
-
-
-
-
- Ajax requests that updates an element with
- the fetched content
-
- Url to fetch content from
- element to update
- optional options in format "key, value, key, value", used in JS updater object.
- A link tag.
- All javascript option names should end with colon.
-
-
- JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
-
-
-
-
-
- A link that pop ups a Dialog (overlay div)
-
- url to contents of dialog
- link title
- A "a"-tag that popups a dialog when clicked
- name/value of html attributes
-
- WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
-
-
-
-
- Close a javascript dialog window/div.
-
- javascript for closing a dialog.
-
-
-
-
- Creates a new modal dialog window
-
- url to open in window.
- window title (may not be supported by all js implementations)
-
-
-
-
-
- Contains a connection to a browser/client.
-
-
-
-
- Contains a connection to a browser/client.
-
-
-
-
- Disconnect from client
-
- error to report in the delegate.
-
-
-
- Send a response.
-
- Either HttpHelper.HTTP10 or HttpHelper.HTTP11
- http status code
- reason for the status code.
- html body contents, can be null or empty.
- If httpVersion is invalid.
-
-
-
- Send a response.
-
- Either HttpHelper.HTTP10 or HttpHelper.HTTP11
- http status code
- reason for the status code.
-
-
-
- Send a response.
-
-
-
-
-
- send a whole buffer
-
- buffer to send
-
-
-
-
- Send data using the stream
-
- Contains data to send
- Start position in buffer
- number of bytes to send
-
-
-
-
-
- Using SSL or other encryption method.
-
-
-
-
- Buffersize determines how large the HTTP header can be.
-
-
-
-
- Initializes a new instance of the class.
-
- true if the connection is secured (SSL/TLS)
- client that connected.
- delegate handling incoming requests.
- delegate being called when a client disconnectes
- Stream used for communication
- If beginreceive fails
- delegate used to write log entries
-
-
-
-
-
- Initializes a new instance of the class.
-
- true if the connection is secured (SSL/TLS)
- delegate handling incoming requests.
- client that connected
- Stream used for communication
- If beginreceive fails
-
-
-
-
-
- Disconnect from client
-
- error to report in the delegate.
-
-
-
- This method checks the request if a responde to 100-continue should be sent.
-
-
- 100 continue is a value in the Expect header.
- It's used to let the webserver determine if a request can be handled. The client
- waits for a reply before sending the body.
-
-
-
-
- Send a response.
-
- Either HttpHelper.HTTP10 or HttpHelper.HTTP11
- http status code
- reason for the status code.
- html body contents, can be null or empty.
- If httpVersion is invalid.
-
-
-
- Send a response.
-
- Either HttpHelper.HTTP10 or HttpHelper.HTTP11
- http status code
- reason for the status code.
-
-
-
- Send a response.
-
-
-
-
-
- send a whole buffer
-
- buffer to send
-
-
-
-
- Send data using the stream
-
- Contains data to send
- Start position in buffer
- number of bytes to send
-
-
-
-
-
- Using SSL or other encryption method.
-
-
-
-
- Client have been disconnected.
-
- Client that was disconnected.
- Reason
-
-
-
-
- Invoked when a client context have received a new HTTP request
-
- Client that received the request.
- Request that was received.
-
-
-
-
- A controller module is a part of the ModelViewController design pattern.
- It gives you a way to create user friendly URLs.
-
-
- The controller module uses the flyweight pattern which means that
- the memory usage will continue to increase until the module have
- enough objects in memory to serve all concurrent requests. The objects
- are reused and will not be freed.
-
-
-
- ControllerModule module = new ControllerModule();
- module.Add(new UserController());
- module.Add(new SearchController());
- myWebsite.Add(module);
-
-
-
-
-
- A HttpModule can be used to serve urls. The module itself
- decides if it should serve a url or not. In this way, you can
- get a very flexible http app since you can let multiple modules
- serve almost similiar urls.
-
-
- Throw UnauthorizedException if you are using a AuthenticationModule and want to prompt for username/password.
-
-
-
-
- Method that process the url
-
- Information sent by the browser about the request
- Information that is being sent back to the client.
- Session used to
- true if this module handled the request.
-
-
-
- Set the log writer to use.
-
- logwriter to use.
-
-
-
- Log something.
-
- importance of log message
- message
-
-
-
- If true specifies that the module doesn't consume the processing of a request so that subsequent modules
- can continue processing afterwards. Default is false.
-
-
-
-
- The controller module uses the prototype design pattern
- to be able to create new controller objects for requests
- if the stack is empty.
-
- A prototype which will be cloned for each request
-
- If a controller with that name have been added already.
-
-
-
- Method that process the incoming request.
-
- Information sent by the browser about the request
- Information that is being sent back to the client.
- Session used to
-
-
-
- Get a prototype
-
- in lowercase, without "Controller"
- The controller if found; otherwise null.
-
-
- //fetches the class UserController
- RequestController userController = controllerModule["user"];
-
-
-
-
-
- Initializes a new instance of the class.
-
- A controller used to handle certain URLs. Will be cloned for each parallel request.
-
-
-
- Retrieve a previously created controller (or a new one if none exist).
-
-
-
-
-
- Add a controller
-
-
-
-
-
- Prototype controller used for cloning.
-
- The prototype.
-
-
-
- Will contain helper functions for javascript.
-
-
-
-
- Requests a url through ajax
-
- url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.
- optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.
- a link tag
- onclick attribute is used by this method.
-
-
- // plain text
- JSHelper.AjaxRequest("'/user/show/1'");
-
- // ajax request using this.href
- string link = "<a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/<call user</a>";
-
-
-
-
-
- Ajax requests that updates an element with
- the fetched content
-
- url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.
- element to update
- options in format "key, value, key, value". All keys should end with colon.
- A link tag.
-
-
- JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
-
-
-
-
-
- Opens contents in a dialog window.
-
- url to contents of dialog
- link title
- name, value, name, value, all parameter names should end with colon.
-
-
-
- Close a javascript dialog window/div.
-
- javascript for closing a dialog.
-
-
-
-
- Delegate used by to populate select options.
-
- current object (for instance a User).
- Text that should be displayed in the value part of a <optiongt;-tag.
- Text shown in the select list.
-
- // Class that is going to be used in a SELECT-tag.
- public class User
- {
- private readonly string _realName;
- private readonly int _id;
- public User(int id, string realName)
- {
- _id = id;
- _realName = realName;
- }
- public string RealName
- {
- get { return _realName; }
- }
-
- public int Id
- {
- get { return _id; }
- }
- }
-
- // Using an inline delegate to generate the select list
- public void UserInlineDelegate()
- {
- List<User> items = new List<User>();
- items.Add(new User(1, "adam"));
- items.Add(new User(2, "bertial"));
- items.Add(new User(3, "david"));
- string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
- {
- User user = (User)o;
- id = user.Id;
- value = user.RealName;
- }, 2, true);
- }
-
- // Using an method as delegate to generate the select list.
- public void UseExternalDelegate()
- {
- List<User> items = new List<User>();
- items.Add(new User(1, "adam"));
- items.Add(new User(2, "bertial"));
- items.Add(new User(3, "david"));
- string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
- }
-
- // delegate returning id and title
- public static void UserOptions(object o, out object id, out object title)
- {
- User user = (User)o;
- id = user.Id;
- value = user.RealName;
- } ///
-
-
-
- Methods marked with BeforeFilter will be invoked before each request.
-
-
- BeforeFilters should take no arguments and return false
- if controller method should not be invoked.
-
-
-
-
-
- Initializes a new instance of the class.
-
-
- BeforeFilters should take no arguments and return false
- if controller method should not be invoked.
-
-
-
-
- Initializes a new instance of the class.
-
- Specify if the filter should be invoked among the first filters, in between or among the last.
-
- BeforeFilters should take no arguments and return false
- if controller method should not be invoked.
-
-
-
-
- Filters position in before filter queue
-
-
-
-
- Determins when a before filter is executed.
-
-
-
-
-
- Filter will be invoked first (unless another filter is added after this one with the First position)
-
-
-
-
- Invoke after all first filters, and before the last filters.
-
-
-
-
- Filter will be invoked last (unless another filter is added after this one with the Last position)
-
-
-
-
- The "basic" authentication scheme is based on the model that the
- client must authenticate itself with a user-ID and a password for
- each realm. The realm value should be considered an opaque string
- which can only be compared for equality with other realms on that
- server. The server will service the request only if it can validate
- the user-ID and password for the protection space of the Request-URI.
- There are no optional authentication parameters.
-
-
-
-
- Authentication modules are used to implement different
- kind of http authentication.
-
-
-
-
- Initializes a new instance of the class.
-
- Delegate used to provide information used during authentication.
- Delegate used to determine if authentication is required (may be null).
-
-
-
- Initializes a new instance of the class.
-
- Delegate used to provide information used during authentication.
-
-
-
- Create a response that can be sent in the WWW-Authenticate header.
-
- Realm that the user should authenticate in
- Array with optional options.
- A correct auth request.
- If realm is empty or null.
-
-
-
- An authentication response have been received from the web browser.
- Check if it's correct
-
- Contents from the Authorization header
- Realm that should be authenticated
- GET/POST/PUT/DELETE etc.
- options to specific implementations
- Authentication object that is stored for the request. A user class or something like that.
- if authenticationHeader is invalid
- If any of the paramters is empty or null.
-
-
-
- Used to invoke the auth delegate that is used to lookup the username/realm.
-
- Realm (domain) that user want to authenticate in
- Username
- Password used for validation. Some implementations got password in clear text, they are then sent to client.
- object that will be stored in the request to help you identify the user if authentication was successful.
- true if authentication was successful
-
-
-
- Determines if authentication is required.
-
- Http request from browser
- true if user should be authenticated.
- throw ForbiddenException from your delegate if no more attempts are allowed.
- If no more attempts are allowed
-
-
-
- name used in http request.
-
-
-
-
- Initializes a new instance of the class.
-
- Delegate used to provide information used during authentication.
- Delegate used to determine if authentication is required (may be null).
-
-
-
- Initializes a new instance of the class.
-
- Delegate used to provide information used during authentication.
-
-
-
- Create a response that can be sent in the WWW-Authenticate header.
-
- Realm that the user should authenticate in
- Not used in basic auth
- A correct auth request.
-
-
-
- An authentication response have been received from the web browser.
- Check if it's correct
-
- Contents from the Authorization header
- Realm that should be authenticated
- GET/POST/PUT/DELETE etc.
- Not used in basic auth
- Authentication object that is stored for the request. A user class or something like that.
- if authenticationHeader is invalid
- If any of the paramters is empty or null.
-
-
-
- name used in http request.
-
-
-
-
- The follow node allows users to display code in a haml document
-
-
- #main Welcome =user.FirstName
-
-
-
-
- Child nodes may not be the first node on a line
-
-
-
-
- A node represents a controller code and contents. For example a html tag, an attribute list or something else.
-
-
-
-
- Add a new node
-
- parent node.
-
-
-
- Modifiers are used to modify the first node on the line.
- Typical modifiers are attribute lists, class names and IDs.
-
- Modifier node
-
-
-
- Parse node contents add return a fresh node.
-
- List containing all node types
- Node that this is a subnode to. Can be null
- Line to parse
- Where to start the parsing. Should be set to where the next node should start parsing.
- A node corresponding to the bla bla; null if parsing failed.
-
-
-
-
- determines if this node can handle the line (by checking the first word);
-
- Controller char (word)
- true if text belongs to this node type
- First node on line, used since some nodes cannot exist on their own on a line.
-
-
-
- Generate HTML code (with ASP tags)
-
-
-
-
-
- Converts the node to c# code
-
- true if we are inside the internal stringbuilder
- c# code
-
-
-
- Convert the node to c# code
-
- True if we are inside the internal stringbuilder
- true if all subnodes fit on one line
- c# code
-
-
-
- Generate C# code of the node
-
- true if we are inside the internal stringbuilder
- code is small enough to fit on one row.
- smallEnough is a default value, recalc it
- c# code
-
-
-
- Get intendation level for this node.
-
-
-
-
-
- Returns true if the node is applicable after another node as text instead of being applied as a modifier
-
-
-
-
- Count our children and our childrens children and so on...
-
-
-
-
- All child nodes for this node.
-
-
-
-
- Should only be set for each parent.
-
-
-
-
- Modifiers are used to modify the first node on the line.
- Typical modifiers are attribute lists, class names and IDs.
-
-
-
-
- Last modifier for this node
-
-
-
-
-
- Number of modifiers for this line.
-
-
-
-
- Parent node.
-
-
-
-
- Child nodes may not be the first node on a line
-
- parent node
-
-
-
- Creates a DIV node and add's the specified node to it.
-
- Contains all prototypes for each control char. used to instanciate new nodes.
- parent node
- current line information
- node to add to the DIV node
- current node
-
-
-
- Get endposition for this modifier.
-
- where to start searching
- contents of the current line
- char that tells us that this is the end position
- index on the current line
-
-
-
- Get endposition for this modifier.
-
- where to start searching
- contents of the current line
- index on the current line
-
-
-
- This is a plain text node
-
-
-
-
- Contains C# code that will be rendered into the view.
-
- Parent node
-
-
-
- Parse node contents add return a fresh node.
-
- List containing all node types
- Node that this is a subnode to. Can be null
- Line to parse
- Where to start the parsing. Should be set to where the next node should start parsing.
- A node corresponding to the bla bla; null if parsing failed.
-
-
-
-
- determines if this node can handle the line (by checking the first word);
-
- Controller char (word)
- true if text belongs to this node type
- first node on line
-
-
-
- Generate HTML for this node (with asp tags for code)
-
-
-
-
-
- = is placed at the end of a tag definition, after class, id, and attribute declarations.
- It’s just a shortcut for inserting Ruby code into an element. It works the same as = without a tag:
- it inserts the result of the Ruby code into the template.
- However, if the result is short enough, it is displayed entirely on one line.
-
- True if we are inside the internal stringbuilder
- true if all subnodes fit on one line
- smallEnough is a default value, recalc it
- c# code
-
-
-
- Determines if this is a textnode (containg plain text)
-
-
-
-
- Contains HTML attributes.
-
-
-
-
- Create a new node
-
- parent node
- collection of attributes
-
-
-
- create an attribute node
-
- parent node
-
-
-
- Get an attribute
-
- name of the attribute (case sensitive)
- attribute if found; otherwise null.
-
-
-
- Parse node contents add return a fresh node.
-
- List containing all node types
- Node that this is a subnode to. Can be null
- Line to parse
- Where to start the parsing. Should be set to where the next node should start parsing.
- A node corresponding to the bla bla; null if parsing failed.
-
-
-
-
- determines if this node can handle the line (by checking the first word);
-
- Controller char (word)
- true if text belongs to this node type
- first node on line
-
-
-
- Convert node to HTML (with ASP-tags)
-
- HTML string
-
-
-
- Convert the node to c# code
-
- True if we are inside the internal stringbuilder
- true if all subnodes fit on one line
- smallEnough is a default value, recalc it
- c# code
-
-
-
- html attributes
-
-
-
-
- A attribute
-
-
-
-
- value is a simple word or quoted text
-
-
-
-
- Name of the attribute
-
-
-
-
- Value, can be a statement, variable or quoted text.
-
-
-
-
- Arguments being used in a template.
-
-
-
-
-
-
- Holds the arguments connected to their names for quick access.
- (since the ArgumentContainer also holds the name for the argument the mapping with strings is somewhat redundant
- but since the data do 'belong' to the ArgumentContainer this solution was chosen to speed up access)
-
-
-
-
- Initializes the class without any set arguments.
-
-
-
-
- Initializes the class with all the arguments of the parameter class.
-
- Cannot be null
- If arguments is null
-
-
-
- Initializes the class with the objects in the parameterlist.
- Note that each object that is null must be followed by a type.
-
- Should contain ordered pairs/truples of string, object and type where type is optional if the object isn´t null
- new TemplateArguments("Dir", "\", "Users", null, typeof(User));
- If optional type differs from type of object (if object != null) or argument name is duplicate
- If the order of objects is incorrect
- If any argument name or type is null
-
-
-
- A function that merges two argument holders updating and adding values
-
-
- If arguments is null
-
-
-
- Clears added arguments
-
-
-
-
- Adds an argument.
- (Will throw ArgumentException on duplicates since adding an argument twice points to incorrect code, for ways around
- this
-
- Cannot be null
- Cannot be null
- If argumentName or argumentObject is null
- If an argument named argumentName already exists
-
-
-
- Adds an argument. Allows for argumentObject to be null
- (Will throw ArgumentException
-
- Cannot be null
-
- Cannot be null
- If argumentName or argumentType is null
- If an argument named argumentName already exists or argumentObject != null and typeof(argumentObject) differs from argumentType
-
-
-
- Updates an already added argument
-
- Cannot be null
- Cannot be null
- If no argument named argumentName exists
- If argumentName or argumentObject is null
-
-
-
- Updates an already added argument, allows for argumentObject to be null
-
- Cannot be null
-
- Cannot be null
- If argumentName or argumentType is null
- If an argument named argumentName doesn´t exists or argumentObject != null and typeof(argumentObject) differs from argumentType
-
-
-
- Clears all added arguments
-
-
-
-
- Retrieves the arguments
- (Does so now by copying the values to a new array, could be optimized?)
-
- An array containing arguments with name, object and type
-
-
-
- Returns a individual hashcode built upon the specified types the class is holding
-
- The hashcode is made by joining the typenames of all held arguments and making a string hashcode from them
-
-
-
-
- Retrieves a concated typename ie DictinaryInt32String
-
- The type to retrieve the name for
-
-
-
- Checks whether a specific argument is specified or not.
-
- Argument name
- true if argument is specified; otherwise false.
-
-
-
- Function to make it possible to index out known arguments
-
- The name of an added argument
- Null if no ArgumentContainer by name was found
-
-
-
- A container class grouping mapping name, argument type and the argument object
-
-
-
-
- Contains the name mapped to the argument
-
-
-
-
- Contains the type of the argument, this must be valid if _argumentObject is null
-
-
-
-
- Holds the actual object
-
-
-
-
- Constructor to initiate an ArgumentContainer, will set the ArgumentType to the value of the argumentObject's type
-
- Cannot be null
- Cannot be null
- If argumentName or argumentObject is null
-
-
-
- Alternative constructor allowing argumentObject parameter to be null
-
- Cannot be null
-
- Cannot be null
- If argumentName or argumentType is null
- If argumentObject != null and argumentType != typeof(argumentObject)
-
-
-
- Sets the object and type of the argument, equal to ArgumentContainer.Object = ...
-
- Cannot be null
- If argumentObject is null
-
-
-
- Sets the argument object and type. Type of the object and argumentType must correspond.
-
-
- Cannot be null
- If argumentType is null
- If typeof(argumentObject) differs from argumentType and object != null
-
-
-
- Attribute for retrieving the name. The name cannot be set however because an argument is defined by its name
- changing the name would be changing the arguments meaning, thus an argument needing a name change should rather
- be recreated
-
-
-
-
- Returns the type of the argument object. The property cannot be set since the type depends on and must correspond to
- the type of the object
-
-
-
-
- Returns or changes the argument object. If the object is to be changed to null the type must be passed aswell,
- in that case
-
- If set value is null
-
-
-
- A partial is a HAML template that is inserted into other HAML templates.
-
-
-
-
- Contains the page/controller target for the partial.
- The PartialNode should be written as follows:
- ex.
-
- _"requestedpage"{parametername="parametervalue",parametername2=parameter2,parametername3=parameter3:typeof(parameter3type)}
-
-
-
-
- create a new partial node.
-
- parent node
-
-
-
- Determines if this node can handle the line (by checking the first word);
-
- Controller char (word)
- True if text belongs to this node type
- First node on line.
-
-
-
- Parse node contents add return a fresh node.
-
- Node that this is a subnode to. Can be null
- A list with node types
- Line to parse
- Where to start the parsing. Will be set to where the next node should start parsing
- A node corresponding to the bla bla; null if parsing failed.
-
-
-
-
- Convert the node to c# code
-
- True if we are inside the internal stringbuilder
- true if all subnodes fit on one line
- smallEnough is a default value, recalc it
- c# code
-
-
-
- Convert node to HTML (with ASP-tags)
-
- HTML string
-
-
-
- Helper function to retrieve the code for the partial request
-
- A string representing the code for invocating a render of the partial
-
-
-
- Throw an exception with predefined information
-
- why the exception was thrown
-
-
-
- This is a plain text node
-
-
-
-
- Returns the page/controller target for the node
-
-
-
-
- Loads templates from embedded resources.
-
-
-
-
- Loads templates from a namespace in the given assembly to an uri
-
- The uri to map the resources to
- The assembly in which the resources reside
- The namespace from which to load the resources
-
- resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
-
- will make ie the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
-
-
-
-
- Load a template into a and return it.
-
- Relative path (and filename) to template.
-
- a if file was found; otherwise null.
-
-
-
-
- Fetch all files from the resource that matches the specified arguments.
-
- Where the file should reside.
- Files to check
-
- a list of files if found; or an empty array if no files are found.
-
-
-
-
- Always returns true since a resource won't be updated during execution
-
-
-
-
-
-
- Returns whether or not the loader has an instance of the file requested
-
- The name of the template/file
- True if the loader can provide the file
-
-
-
- Priority for log entries
-
-
-
-
-
- Very detailed logs to be able to follow the flow of the program.
-
-
-
-
- Logs to help debug errors in the application
-
-
-
-
- Information to be able to keep track of state changes etc.
-
-
-
-
- Something did not go as we expected, but it's no problem.
-
-
-
-
- Something that should not fail failed, but we can still keep
- on going.
-
-
-
-
- Something failed, and we cannot handle it properly.
-
-
-
-
- Interface used to write to log files.
-
-
-
-
- Write an entry to the log file.
-
- object that is writing to the log
- importance of the log message
- the message
-
-
-
- This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode)
-
-
-
-
-
- The actual instance of this class.
-
-
-
-
- Logwriters the specified source.
-
- object that wrote the logentry.
- Importance of the log message
- The message.
-
-
-
- Get color for the specified logprio
-
- prio for the log entry
- A for the prio
-
-
-
- Default log writer, writes everything to null (nowhere).
-
-
-
-
-
- The logging instance.
-
-
-
-
- Writes everything to null
-
- object that wrote the logentry.
- Importance of the log message
- The message.
-
-
-
- Contains some kind of input from the browser/client.
- can be QueryString, form data or any other request body content.
-
-
-
-
- Base class for request data containers
-
-
-
-
- Adds a parameter mapped to the presented name
-
- The name to map the parameter to
- The parameter value
-
-
-
- Returns true if the container contains the requested parameter
-
- Parameter id
- True if parameter exists
-
-
-
- Returns a request parameter
-
- The name associated with the parameter
-
-
-
- Representation of a non-initialized class instance
-
-
- Variable telling the class that it is non-initialized
-
-
-
- Initializes a new instance of the class.
-
- form name.
-
-
-
- Initializes a new instance of the class.
-
- form name.
- if set to true all changes will be ignored.
- this constructor should only be used by Empty
-
-
- Creates a deep copy of the HttpInput class
- The object to copy
- The function makes a deep copy of quite a lot which can be slow
-
-
-
- Add a new element. Form array elements are parsed
- and added in a correct hierachy.
-
- Name is converted to lower case.
-
-
-
-
- Returns true if the class contains a HttpInput value with the corresponding name
-
- The field/querystring name
- True if the value exists
-
-
-
- Parses an item and returns it.
- This function is primarly used to parse array items as in user[name].
-
-
-
-
-
-
- Outputs the instance representing all its values joined together
-
-
-
- Returns all items as an unescaped query string.
-
-
-
-
- Extracts one parameter from an array
-
- Containing the string array
- All but the first value
-
- string test1 = ExtractOne("system[user][extension][id]");
- string test2 = ExtractOne(test1);
- string test3 = ExtractOne(test2);
- // test1 = user[extension][id]
- // test2 = extension[id]
- // test3 = id
-
-
-
- Resets all data contained by class
-
-
-
- Returns an enumerator that iterates through the collection.
-
-
-
- A that can be used to iterate through the collection.
-
- 1
-
-
-
- Returns an enumerator that iterates through a collection.
-
-
-
- An object that can be used to iterate through the collection.
-
- 2
-
-
-
- Form name as lower case
-
-
-
-
- Get a form item.
-
-
- Returns HttpInputItem.Empty if item was not found.
-
-
-
- Returns item either from a form or a query string (checks them in that order)
-
-
-
- Representation of a non-initialized HttpParam
-
-
- Initialises the class to hold a value either from a post request or a querystring request
-
-
-
- The add method is not availible for HttpParam
- since HttpParam checks both Request.Form and Request.QueryString
-
- name identifying the value
- value to add
-
-
-
-
- Checks whether the form or querystring has the specified value
-
- Name, case sensitive
- true if found; otherwise false.
-
-
-
- Returns an enumerator that iterates through the collection.
-
-
-
- A that can be used to iterate through the collection.
-
- 1
-
-
-
- Returns an enumerator that iterates through a collection.
-
-
-
- An object that can be used to iterate through the collection.
-
- 2
-
-
-
- Fetch an item from the form or querystring (in that order).
-
-
- Item if found; otherwise HttpInputItem.EmptyLanguageNode
-
-
-
- Container class for posted files
-
-
-
-
- Creates a container for a posted file
-
- The identifier of the post field
- The file path
- The content type of the file
- The name of the file uploaded
- If any parameter is null or empty
-
-
-
- Creates a container for a posted file
-
- If any parameter is null or empty
-
-
- Destructor disposing the file
-
-
-
- Deletes the temporary file
-
- True if manual dispose
-
-
-
- Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization
-
-
-
-
- The name/id of the file
-
-
-
-
- The full file path
-
-
-
-
- The name of the uploaded file
-
-
-
-
- The type of file
-
-
-
-
- The object form class takes an object and creates form items for it.
-
-
-
-
- Initializes a new instance of the class.
-
-
- form name *and* id.
- action to do when form is posted.
-
-
-
-
- Initializes a new instance of the class.
-
- form name *and* id.
- action to do when form is posted.
- object to get values from
-
-
-
- Initializes a new instance of the class.
-
- form action.
- object to get values from.
-
-
-
- write out the FORM-tag.
-
- generated html code
-
-
-
- Writeout the form tag
-
- form should be posted through ajax.
- generated html code
-
-
-
- Generates a text box.
-
-
-
- generated html code
-
-
-
- password box
-
-
-
- generated html code
-
-
-
- Hiddens the specified property name.
-
- Name of the property.
- The options.
- generated html code
-
-
-
- Labels the specified property name.
-
- property in object.
- caption
- generated html code
-
-
-
- Generate a checkbox
-
- property in object
- checkbox value
- additional html attributes.
- generated html code
-
-
-
- Write a html select tag
-
- object property.
- id column
- The title column.
- The options.
-
-
-
-
- Selects the specified property name.
-
- Name of the property.
- The items.
- The id column.
- The title column.
- The options.
-
-
-
-
- Write a submit tag.
-
- button caption
- html submit tag
-
-
-
- html end form tag
-
- html
-
-
-
- This provider is used to let us implement any type of form decoding we want without
- having to rewrite anything else in the server.
-
-
-
-
-
-
- Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959
- Stream containg form data.
- Encoding used when decoding the stream
- HttpInput.EmptyLanguageNode if no parser was found. Must always return something (HttpInput.Empty instead of null)
- If stream is null or not readable.
- If stream contents cannot be decoded properly.
-
-
-
- Add a decoder.
-
-
-
-
-
-
- Number of added decoders.
-
-
-
-
- Use with care.
-
-
-
-
- Decoder used for unknown content types.
-
-
-
-
- Contains an (html) attribute list.
-
-
-
-
- Rules are used during preparse
-
-
-
-
- Determines if this node spans over multiple lines.
-
- contains line information (and text)
- true if rule have previously inited a multiline.
- true if this line continues onto the next.///
-
-
-
- Determines if this node spans over multiple lines.
-
- contains line information (and text)
- true if the previous line was continued.
- true if this line continues onto the next.
-
-
-
- A text only node.
-
-
-
-
-
-
- parent node
- plain text
-
-
-
- Parse node contents add return a fresh node.
-
- List containing all node types
- Node that this is a subnode to. Can be null
- Line to parse
- Where to start the parsing. Should be set to where the next node should start parsing.
- A node corresponding to the bla bla; null if parsing failed.
-
-
-
-
- determines if this node can handle the line (by checking the first word);
-
- Controller char (word)
- true if text belongs to this node type
- true if this is the first node on the line.
-
-
-
- Generate HTML for this node.
-
-
-
-
-
- Convert the node to c# code
-
- True if we are inside the internal stringbuilder
- true if all subnodes fit on one line
- todo: add description
- c# code
-
-
-
- The text.
-
-
-
-
- Is this a text node (containing plain text)?
-
-
-
-
- Serves files that are stored in embedded resources.
-
-
-
-
- Initializes a new instance of the class.
- Runs to make sure the basic mime types are available, they can be cleared later
- through the use of if desired.
-
-
-
-
- Mimtypes that this class can handle per default
-
-
-
-
- Loads resources from a namespace in the given assembly to an uri
-
- The uri to map the resources to
- The assembly in which the resources reside
- The namespace from which to load the resources
-
- resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
-
- will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css
-
-
-
-
- Returns true if the module can handle the request
-
-
-
-
- Method that process the url
-
- Information sent by the browser about the request
- Information that is being sent back to the client.
- Session used to
- true if this module handled the request.
-
-
-
- List with all mime-type that are allowed.
-
- All other mime types will result in a Forbidden http status code.
-
-
-
- This decoder converts XML documents to form items.
- Each element becomes a subitem in the form, and each attribute becomes an item.
-
-
- // xml: somethingdata
- // result:
- // form["hello"].Value = "something"
- // form["hello"]["id"].Value = 1
- // form["hello"]["world]["id"].Value = 1
- // form["hello"]["world"].Value = "data"
-
-
- The original xml document is stored in form["__xml__"].Value.
-
-
-
-
- Interface for form content decoders.
-
-
-
-
-
-
- Stream containing the content
- Content type (with any additional info like boundry). Content type is always supplied in lower case
- Stream enconding
- A http form, or null if content could not be parsed.
- If contents in the stream is not valid input data.
-
-
-
- Checks if the decoder can handle the mime type
-
- Content type (with any additional info like boundry). Content type is always supplied in lower case.
- True if the decoder can parse the specified content type
-
-
-
-
-
- Stream containing the content
- Content type (with any additional info like boundry). Content type is always supplied in lower case
- Stream encoding
- Note: contentType and encoding are not used?
- A http form, or null if content could not be parsed.
-
-
-
-
- Recursive function that will go through an xml element and store it's content
- to the form item.
-
- (parent) Item in form that content should be added to.
- Node that should be parsed.
-
-
-
- Checks if the decoder can handle the mime type
-
- Content type (with any additional info like boundry). Content type is always supplied in lower case.
- True if the decoder can parse the specified content type
-
-
-
- This attribute can be used to map a controller to a specific url without using
- the class name.
-
-
-
-
- Maps a controller to a url without using the controller name.
-
-
- Per default the class name is used to determine which url to handle.
- For instance, "class UserController" or "class User" tells the framework that
- the urls that starts with "/user" should be handled by that controller.
- This attribute can be used to circumvent that.
-
- The name.
-
-
-
- The name that the controller should use
-
-
-
-
- A session store is used to store and load sessions on a media.
- The default implementation () saves/retrieves sessions from memory.
-
-
-
-
- Creates a new http session with a generated id.
-
- A object
-
-
-
- Creates a new http session with a specific id
-
- Id used to identify the new cookie..
- A object.
-
- Id should be generated by the store implementation if it's null or .
-
-
-
-
- Load an existing session.
-
- Session id (usually retrieved from a client side cookie).
- A session if found; otherwise null.
-
-
-
- Save an updated session to the store.
-
- Session id (usually retrieved from a client side cookie).
- If Id property have not been specified.
-
-
-
- We use the flyweight pattern which reuses small objects
- instead of creating new each time.
-
- Unused session that should be reused next time Create is called.
-
-
-
- Remove expired sessions
-
-
-
-
- Remove a session
-
- id of the session.
-
-
-
- Load a session from the store
-
-
- null if session is not found.
-
-
-
- Number of minutes before a session expires.
-
- Default time is 20 minutes.
-
-
-
- HTTP Listener waits for HTTP connections and provide us with s using the
- delegate.
-
-
-
-
- Listen for regular HTTP connections
-
- IP Address to accept connections on
- TCP Port to listen on, default HTTP port is 80.
-
-
-
- Launch HttpListener in SSL mode
-
- IP Address to accept connections on
- TCP Port to listen on, default HTTPS port is 443
- Certificate to use
-
-
-
- Launch HttpListener in SSL mode
-
- IP Address to accept connections on
- TCP Port to listen on, default HTTPS port is 443
- Certificate to use
- which HTTPS protocol to use, default is TLS.
-
-
-
- Start listen for new connections
-
- Number of connections that can stand in a queue to be accepted.
-
-
-
- Stop the listener
-
-
-
-
-
- A client have been accepted, but not handled, by the listener.
-
-
-
-
- Invoked when a client disconnects
-
-
-
-
- Gives you a change to receive log entries for all internals of the HTTP library.
-
-
- You may not switch log writer after starting the listener.
-
-
-
-
- This handler will be invoked each time a new connection is accepted.
-
-
-
-
- True if we should turn on trace logs.
-
-
-
-
- Let's to receive unhandled exceptions from the threads.
-
-
- Exceptions will be thrown during debug mode if this event is not used,
- exceptions will be printed to console and suppressed during release mode.
-
-
-
-
- PrototypeJS implementation of the javascript functions.
-
-
-
-
- Requests a url through ajax
-
- url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.
- optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.
- a link tag
- onclick attribute is used by this method.
-
-
- // plain text
- JSHelper.AjaxRequest("'/user/show/1'");
-
- // ajax request using this.href
- string link = "<a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/<call user</a>";
-
-
-
-
-
- Determins if a list of strings contains a specific value
-
- options to check in
- value to find
- true if value was found
- case insensitive
-
-
-
- Ajax requests that updates an element with
- the fetched content
-
- url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.
- element to update
- options in format "key, value, key, value". All keys should end with colon.
- A link tag.
-
-
- JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
-
-
-
-
-
- A link that pop ups a Dialog (overlay div)
-
- url to contents of dialog
- link title
- name, value, name, value
-
- A "a"-tag that popups a dialog when clicked
-
- Requires Control.Modal found here: http://livepipe.net/projects/control_modal/
- And the following javascript (load it in application.js):
-
- Event.observe(window, 'load',
- function() {
- document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); });
- }
- );
-
-
-
- WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
-
-
-
-
- create a modal dialog (usually using DIVs)
-
- url to fetch
- dialog title
- javascript/html attributes. javascript options ends with colon ':'.
-
-
-
-
- Close a javascript dialog window/div.
-
- javascript for closing a dialog.
-
-
-
-
- javascript action that should be added to the "onsubmit" event in the form tag.
-
- remember to encapsulate strings in ''
-
- All javascript option names should end with colon.
-
-
- JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
-
-
-
-
-
- The requested resource was not found in the web server.
-
-
-
-
- All HTTP based exceptions will derive this class.
-
-
-
-
- Create a new HttpException
-
- http status code (sent in the response)
- error description
-
-
-
- Create a new HttpException
-
- http status code (sent in the response)
- error description
- inner exception
-
-
-
- status code to use in the response.
-
-
-
-
- Create a new exception
-
- message describing the error
- inner exception
-
-
-
- Create a new exception
-
- message describing the error
-
-
-
- A controller in the Model-View-Controller pattern.
- Derive this class and add method with one of the following signatures:
- "public string MethodName()" or "public void MyMethod()".
-
- The first should return a string with the response, the latter
- should use SendHeader and SendBody methods to handle the response.
-
-
- Last segment of the path is always broken into the properties Id and RequestedType
- Alhtough note that the RequestedType can also be empty if no file extension have
- been specified. A typical use of file extensions in controllers is to specify which type of
- format to return.
-
-
- public class MyController : RequestController
- {
- public string Hello()
- {
- if (RequestedType == "xml")
- return "<hello>World<hello>";
- else
- return "Hello " + Request.QueryString["user"].Value + ", welcome to my world";
- }
-
- public void File()
- {
- Response.Headers.ContentType = "text/xml";
- Response.SendHeader();
- }
- }
-
-
-
-
-
-
-
- create a new request controller
-
- prototype to copy information from
-
-
-
- create a new controller
-
-
-
-
- Method that determines if an url should be handled or not by the module
-
- Url requested by the client.
- true if module should handle the url.
-
-
-
- Determines which method to use.
-
- Requested resource
-
-
-
- Call all before filters
-
- true if a before filter wants to abort the processing.
-
-
-
- Override this method to be able to process result
- returned by controller method.
-
-
-
-
- Override this method if you want to be able to
- handle unhanded exceptions
-
- thrown exception
- Don't "eat" exceptions derived from HttpException since
- they are handled by the framework,unless your are sure of what you are
- doing..
-
-
-
- This method goes through all methods in the controller and
- add's them to a dictionary. They are later used to invoke
- the correct method depending on the url
-
-
-
-
- Method that process the url
-
- Uses Uri and QueryString to determine method.
- Relays response object to invoked method.
- Relays session object to invoked method.
-
-
-
- Will assign all variables that are unique for each session
-
-
-
-
-
-
-
- Make a clone of this controller
-
- a new controller with the same base information as this one.
-
-
-
- object that was attached during http authentication process.
-
-
- You can also assign this tag yourself if you are using regular
- http page login.
-
-
-
-
-
- Name of this controller (class name without the "Controller" part)
-
-
-
-
- Specifies the method to use if no action have been specified.
-
- If specified method do not exist.
-
-
-
- Id is the third part of the uri path.
-
-
- Is extracted as in: /controllername/methodname/id/
-
- string.Empty if not specified.
-
-
-
-
-
- Method currently being invoked.
- Always in lower case.
-
-
-
-
- Request information (like Url, form, querystring etc)
-
-
-
-
- Extension if a filename was specified.
-
-
-
-
- Response information (that is going to be sent back to the browser/client)
-
-
-
-
- Session information, is stored between requests as long as the session cookie is valid.
-
-
-
-
- Marks methods to let framework know that the method is protected
-
-
-
-
-
-
- Initializes a new instance of the class.
-
-
-
-
-
-
-
- Level is a value defined by you. It should be used to determine the users
- that can access the method tagged with the AuthRequired attribute.
-
-
- = level;
- }
- }
- ]]>
-
-
-
-
- Level is a value defined by you. It should be used to determine the users
- that can access the method tagged with the AuthRequired attribute.
-
-
-
-
- A session stored in memory.
-
-
-
-
- Interface for sessions
-
-
-
-
- Remove everything from the session
-
-
-
-
- Remove everything from the session
-
- True if the session is cleared due to expiration
-
-
-
- Session id
-
-
-
-
- Should
-
- Name of the session variable
- null if it's not set
- If the object cant be serialized.
-
-
-
- When the session was last accessed.
- This property is touched by the http server each time the
- session is requested.
-
-
-
-
- Number of session variables.
-
-
-
-
- Event triggered upon clearing the session
-
-
-
-
-
-
- A unique id used by the sessions store to identify the session
-
-
-
- Id
-
-
-
-
-
- Remove everything from the session
-
-
-
-
- Clears the specified expire.
-
- True if the session is cleared due to expiration
-
-
-
- Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
-
- 2
-
-
-
- Session id
-
-
-
-
- Should
-
- Name of the session variable
- null if it's not set
-
-
-
- when the session was last accessed.
-
-
- Used to determine when the session should be removed.
-
-
-
-
- Number of values in the session
-
-
-
-
- Flag to indicate that the session have been changed
- and should be saved into the session store.
-
-
-
-
- Event triggered upon clearing the session
-
-
-
-
- IRule that says that something :)
-
-
-
-
- Determines if this node spans over multiple lines.
-
- contains line information (and text)
- true if the previous line was continued.
- true if this line continues onto the next.
-
-
-
- Represents a HTML tag.
-
-
-
-
- Create a new HTML tag node.
-
- parent node
-
-
-
- determines if this node can handle the line (by checking the first word);
-
- Controller char (word)
- true if text belongs to this node type
- first node on line.
-
-
-
- Parse node contents add return a fresh node.
-
- Node that this is a subnode to. Can be null
- A list with node types
- Line to parse
- Where to start the parsing. Will be set to where the next node should start parsing
- A node corresponding to the bla bla; null if parsing failed.
-
-
-
-
- Convert the node to c# code
-
- True if we are inside the internal stringbuilder
- true if all subnodes fit on one line
- smallEnough is a default value, recalc it
- c# code
-
-
-
- Convert node to HTML (with ASP-tags)
-
- HTML string
-
-
-
- This is a plain text node
-
-
-
-
- tag name
-
-
-
-
- Thrown when a template cannot be compiled.
-
-
-
-
- Initializes a new instance of the class.
-
- Template that failed compilation.
- Exception thrown by the compiler.
-
-
-
- Creates and returns a string representation of the current exception.
-
-
- A string representation of the current exception.
-
-
-
-
-
-
-
- Gets a message that describes the current exception.
-
-
-
- The error message that explains the reason for the exception, or an empty string("").
-
-
-
-
- Contains all HTTP Methods (according to the HTTP 1.1 specification)
-
- See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
-
-
-
-
-
- The DELETE method requests that the origin server delete the resource identified by the Request-URI.
-
-
-
- This method MAY be overridden by human intervention (or other means) on the origin server.
- The client cannot be guaranteed that the operation has been carried out, even if the status code
- returned from the origin server indicates that the action has been completed successfully.
-
-
- However, the server SHOULD NOT indicate success unless, at the time the response is given,
- it intends to delete the resource or move it to an inaccessible location.
-
-
- A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
- 202 (Accepted) if the action has not yet been enacted,
- or 204 (No Content) if the action has been enacted but the response does not include an entity.
-
-
- If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
- those entries SHOULD be treated as stale. Responses to this method are not cacheable.
-
-
-
-
-
- The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
-
-
-
- If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
- entity in the response and not the source text of the process, unless that text happens to be the output of the process.
-
-
- The semantics of the GET method change to a "conditional GET" if the request message includes an
- If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
- A conditional GET method requests that the entity be transferred only under the circumstances described
- by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
- usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
- data already held by the client.
-
-
-
-
-
- The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
-
-
- The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
- information sent in response to a GET request. This method can be used for obtaining metainformation about
- the entity implied by the request without transferring the entity-body itself.
-
- This method is often used for testing hypertext links for validity, accessibility, and recent modification.
-
-
-
-
- The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI.
-
-
- This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.
-
-
-
-
- The POST method is used to request that the origin server accept the entity enclosed
- in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
-
-
- POST is designed to allow a uniform method to cover the following functions:
-
-
- Annotation of existing resources;
-
- Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
-
- Providing a block of data, such as the result of submitting a form, to a data-handling process;
-
- Extending a database through an append operation.
-
-
-
- If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
- contain an entity which describes the status of the request and refers to the new resource, and a
- Location header (see section 14.30).
-
-
- The action performed by the POST method might not result in a resource that can be identified by a URI.
- In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
- whether or not the response includes an entity that describes the result.
-
- Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
- or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
- to retrieve a cacheable resource.
-
-
-
-
-
- The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
-
-
-
-
- If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
- modified version of the one residing on the origin server.
-
- If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
- resource by the requesting user agent, the origin server can create the resource with that URI.
-
- If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
-
- If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
- indicate successful completion of the request.
-
- If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
- given that reflects the nature of the problem.
-
-
-
- The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
- understand or implement and MUST return a 501 (Not Implemented) response in such cases.
-
-
-
-
-
- The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
-
-
-
-
- Contains all HTTP Methods (according to the HTTP 1.1 specification)
-
- See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
-
-
-
-
-
- The DELETE method requests that the origin server delete the resource identified by the Request-URI.
-
-
-
- This method MAY be overridden by human intervention (or other means) on the origin server.
- The client cannot be guaranteed that the operation has been carried out, even if the status code
- returned from the origin server indicates that the action has been completed successfully.
-
-
- However, the server SHOULD NOT indicate success unless, at the time the response is given,
- it intends to delete the resource or move it to an inaccessible location.
-
-
- A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
- 202 (Accepted) if the action has not yet been enacted,
- or 204 (No Content) if the action has been enacted but the response does not include an entity.
-
-
- If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
- those entries SHOULD be treated as stale. Responses to this method are not cacheable.
-
-
-
-
-
- The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
-
-
-
- If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
- entity in the response and not the source text of the process, unless that text happens to be the output of the process.
-
-
- The semantics of the GET method change to a "conditional GET" if the request message includes an
- If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
- A conditional GET method requests that the entity be transferred only under the circumstances described
- by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
- usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
- data already held by the client.
-
-
-
-
-
- The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
-
-
- The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
- information sent in response to a GET request. This method can be used for obtaining metainformation about
- the entity implied by the request without transferring the entity-body itself.
-
- This method is often used for testing hypertext links for validity, accessibility, and recent modification.
-
-
-
-
- The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI.
-
-
- This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.
-
-
-
-
- The POST method is used to request that the origin server accept the entity enclosed
- in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
-
-
- POST is designed to allow a uniform method to cover the following functions:
-
-
- Annotation of existing resources;
-
- Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
-
- Providing a block of data, such as the result of submitting a form, to a data-handling process;
-
- Extending a database through an append operation.
-
-
-
- If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
- contain an entity which describes the status of the request and refers to the new resource, and a
- Location header (see section 14.30).
-
-
- The action performed by the POST method might not result in a resource that can be identified by a URI.
- In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
- whether or not the response includes an entity that describes the result.
-
- Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
- or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
- to retrieve a cacheable resource.
-
-
-
-
-
- The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
-
-
-
-
- If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
- modified version of the one residing on the origin server.
-
- If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
- resource by the requesting user agent, the origin server can create the resource with that URI.
-
- If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
-
- If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
- indicate successful completion of the request.
-
- If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
- given that reflects the nature of the problem.
-
-
-
- The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
- understand or implement and MUST return a 501 (Not Implemented) response in such cases.
-
-
-
-
-
- The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
-
-
-
-
- Contains serverside http request information.
-
-
-
-
- Decode body into a form.
-
- A list with form decoders.
- If body contents is not valid for the chosen decoder.
- If body is still being transferred.
-
-
-
- Sets the cookies.
-
- The cookies.
-
-
-
- Called during parsing of a IHttpRequest.
-
- Name of the header, should not be url encoded
- Value of the header, should not be url encoded
- If a header is incorrect.
-
-
-
- Add bytes to the body
-
- buffer to read bytes from
- where to start read
- number of bytes to read
- Number of bytes actually read (same as length unless we got all body bytes).
-
- If body is not writable
-
-
-
- Clear everything in the request
-
-
-
-
- Have all body content bytes been received?
-
-
-
-
- Kind of types accepted by the client.
-
-
-
-
- Submitted body contents
-
-
-
-
- Kind of connection used for the session.
-
-
-
-
- Number of bytes in the body
-
-
-
-
- Headers sent by the client. All names are in lower case.
-
-
-
-
- Version of http.
- Probably HttpHelper.HTTP10 or HttpHelper.HTTP11
-
-
-
-
-
- Requested method, always upper case.
-
-
-
-
-
- Variables sent in the query string
-
-
-
-
- Requested URI (url)
-
-
-
-
- Uri absolute path splitted into parts.
-
-
- // uri is: http://gauffin.com/code/tiny/
- Console.WriteLine(request.UriParts[0]); // result: code
- Console.WriteLine(request.UriParts[1]); // result: tiny
-
-
- If you're using controllers than the first part is controller name,
- the second part is method name and the third part is Id property.
-
-
-
-
-
- Check's both QueryString and Form after the parameter.
-
-
-
-
- Form parameters.
-
-
-
- Returns true if the request was made by Ajax (Asyncronous Javascript)
-
-
- Returns set cookies for the request
-
-
-
- Parses a HTTP request directly from a stream
-
-
-
-
- Create a new request parser
-
- delegate called when a complete request have been generated
- delegate receiving log entries.
-
-
-
- Add a number of bytes to the body
-
-
-
-
-
-
-
-
- Remove all state information for the request.
-
-
-
-
- Parse request line
-
-
- If line is incorrect
- Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF"
-
-
-
- We've parsed a new header.
-
- Name in lower case
- Value, unmodified.
- If content length cannot be parsed.
-
-
-
- Parse a message
-
-
- where in buffer that parsing should start
- number of bytes to parse
- Unparsed bytes left in buffer.
-
-
-
- Current state in parser.
-
-
-
-
- Invoked when a request have been completed.
-
-
-
-
-
- Current state in the parsing.
-
-
-
-
- Should parse the request line
-
-
-
-
- Searching for a complete header name
-
-
-
-
- Searching for colon after header name (ignoring white spaces)
-
-
-
-
- Searching for start of header value (ignoring white spaces)
-
-
-
-
- Searching for a complete header value (can span over multiple lines, as long as they are prefixed with one/more whitespaces)
-
-
-
-
- Adding bytes to body
-
-
-
-
- Contains serverside http request information.
-
-
-
-
- Chars used to split an url path into multiple parts.
-
-
-
-
- Assign a form.
-
-
-
-
-
- Creates a new object that is a copy of the current instance.
-
-
-
- A new object that is a copy of this instance.
-
- 2
-
-
-
- Decode body into a form.
-
- A list with form decoders.
- If body contents is not valid for the chosen decoder.
- If body is still being transferred.
-
-
-
- Cookies
-
- the cookies
-
-
-
- Called during parsing of a IHttpRequest.
-
- Name of the header, should not be url encoded
- Value of the header, should not be url encoded
- If a header is incorrect.
-
-
-
- Add bytes to the body
-
- buffer to read bytes from
- where to start read
- number of bytes to read
- Number of bytes actually read (same as length unless we got all body bytes).
-
- If body is not writable
-
-
-
- Clear everything in the request
-
-
-
-
- Have all body content bytes been received?
-
-
-
-
- Kind of types accepted by the client.
-
-
-
-
- Submitted body contents
-
-
-
-
- Kind of connection used for the session.
-
-
-
-
- Number of bytes in the body
-
-
-
-
- Headers sent by the client. All names are in lower case.
-
-
-
-
- Version of http.
- Probably HttpHelper.HTTP10 or HttpHelper.HTTP11
-
-
-
-
-
- Requested method, always upper case.
-
-
-
-
-
- Variables sent in the query string
-
-
-
-
- Requested URI (url)
-
-
-
-
-
- Uri absolute path splitted into parts.
-
-
- // uri is: http://gauffin.com/code/tiny/
- Console.WriteLine(request.UriParts[0]); // result: code
- Console.WriteLine(request.UriParts[1]); // result: tiny
-
-
- If you're using controllers than the first part is controller name,
- the second part is method name and the third part is Id property.
-
-
-
-
-
- Path and query (will be merged with the host header) and put in Uri
-
-
-
-
-
- Check's both QueryString and Form after the parameter.
-
-
-
-
- Form parameters.
-
-
-
- Returns true if the request was made by Ajax (Asyncronous Javascript)
-
-
- Returns set cookies for the request
-
-
-
- Current request is sent over secure protocol
-
-
-
-
- The website module let's you handle multiple websites in the same server.
- It uses the "Host" header to check which site you want.
-
- It's recommended that you do not
- add any other modules to HttpServer if you are using the website module. Instead,
- add all wanted modules to each website.
-
-
-
-
-
- domain name that should be handled.
-
-
-
-
- Method that process the url
-
- Information sent by the browser about the request
- Information that is being sent back to the client.
- Session used to
-
-
-
- Name of site.
-
-
-
-
- Helpers making it easier to work with forms.
-
-
-
-
-
- Used to let the website use different javascript libraries.
- Default is
-
-
-
-
- Create a <form> tag.
-
- name of form
- action to invoke on submit
- form should be posted as ajax
- html code
-
-
- // without options
- WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
-
- // with options
- WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm");
-
-
- html attributes or javscript options.
- Method will ALWAYS be POST.
-
-
-
- Creates a select list with the values in a collection.
-
- Name of the SELECT-tag
- collection used to generate options.
- delegate used to return id and title from objects.
- value that should be marked as selected.
- First row should contain an empty value.
- string containtain a SELECT-tag.
-
-
-
-
- Creates a select list with the values in a collection.
-
- Name of the SELECT-tag
- Id of the SELECT-tag
- collection used to generate options.
- delegate used to return id and title from objects.
- value that should be marked as selected.
- First row should contain an empty value.
- string containtain a SELECT-tag.
-
-
-
- // Class that is going to be used in a SELECT-tag.
- public class User
- {
- private readonly string _realName;
- private readonly int _id;
- public User(int id, string realName)
- {
- _id = id;
- _realName = realName;
- }
- public string RealName
- {
- get { return _realName; }
- }
-
- public int Id
- {
- get { return _id; }
- }
- }
-
- // Using an inline delegate to generate the select list
- public void UserInlineDelegate()
- {
- List<User> items = new List<User>();
- items.Add(new User(1, "adam"));
- items.Add(new User(2, "bertial"));
- items.Add(new User(3, "david"));
- string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
- {
- User user = (User)o;
- id = user.Id;
- value = user.RealName;
- }, 2, true);
- }
-
- // Using an method as delegate to generate the select list.
- public void UseExternalDelegate()
- {
- List<User> items = new List<User>();
- items.Add(new User(1, "adam"));
- items.Add(new User(2, "bertial"));
- items.Add(new User(3, "david"));
- string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
- }
-
- // delegate returning id and title
- public static void UserOptions(object o, out object id, out object title)
- {
- User user = (User)o;
- id = user.Id;
- value = user.RealName;
- }
-
-
-
-
-
- Creates a select list with the values in a collection.
-
- Name of the SELECT-tag
- Id of the SELECT-tag
- collection used to generate options.
- delegate used to return id and title from objects.
- value that should be marked as selected.
- First row should contain an empty value.
- name, value collection of extra html attributes.
- string containtain a SELECT-tag.
-
-
-
-
- Generate a list of HTML options
-
- collection used to generate options.
- delegate used to return id and title from objects.
- value that should be marked as selected.
- First row should contain an empty value.
-
-
-
-
- Creates a checkbox.
-
- element name
- element value
- determines if the check box is selected or not. This is done diffrently depending on the
- type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
- the box is checked or not.
- a list with additional attributes (name, value, name, value).
- a generated radio button
-
-
-
- Creates a checkbox.
-
- element name
- element id
- element value
- determines if the check box is selected or not. This is done diffrently depending on the
- type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
- the box is checked or not.
- a list with additional attributes (name, value, name, value).
- a generated radio button
-
- value in your business object. (check box will be selected if it matches the element value)
-
-
-
-
- Creates a checkbox.
-
- element name
- element id
- determines if the check box is selected or not. This is done diffrently depending on the
- type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
- the box is checked or not.
- a list with additional attributes (name, value, name, value).
- a generated radio button
- will set value to "1".
-
-
-
- Creates a RadioButton.
-
- element name
- element value
- determines if the radio button is selected or not. This is done diffrently depending on the
- type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
- the box is checked or not.
- a list with additional attributes (name, value, name, value).
- a generated radio button
-
-
-
- Creates a RadioButton.
-
- element name
- element id
- element value
- determines if the radio button is selected or not. This is done diffrently depending on the
- type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
- the box is checked or not.
- a list with additional attributes (name, value, name, value).
- a generated radio button
-
-
-
- form close tag
-
-
-
-
-
- The request could not be understood by the server due to malformed syntax.
- The client SHOULD NOT repeat the request without modifications.
-
- Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
-
-
-
-
- Create a new bad request exception.
-
- reason to why the request was bad.
-
-
-
- Create a new bad request exception.
-
- reason to why the request was bad.
- inner exception
-
-
-
- Implements HTTP Digest authentication. It's more secure than Basic auth since password is
- encrypted with a "key" from the server.
-
-
- Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
-
-
-
-
- Initializes a new instance of the class.
-
- Delegate used to provide information used during authentication.
- Delegate used to determine if authentication is required (may be null).
-
-
-
- Initializes a new instance of the class.
-
- Delegate used to provide information used during authentication.
-
-
-
- Used by test classes to be able to use hardcoded values
-
-
-
-
- An authentication response have been received from the web browser.
- Check if it's correct
-
- Contents from the Authorization header
- Realm that should be authenticated
- GET/POST/PUT/DELETE etc.
- First option: true if username/password is correct but not cnonce
-
- Authentication object that is stored for the request. A user class or something like that.
-
- if authenticationHeader is invalid
- If any of the paramters is empty or null.
-
-
-
- Encrypts parameters into a Digest string
-
- Realm that the user want's to log into.
- User logging in
- Users password.
- HTTP metod.
- Uri/domain that generated the login prompt.
- The qop.
- The nonce.
- The nc.
- The cnonce.
- Digest enrypted string
-
-
-
- Create a response that can be sent in the WWW-Authenticate header.
-
- Realm that the user should authenticate in
- First options specifies if true if username/password is correct but not cnonce.
- A correct auth request.
- If realm is empty or null.
-
-
-
- Decodes authorization header value
-
- header value
- Encoding that the buffer is in
- All headers and their values if successful; otherwise null
-
- NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII);
-
- Can handle lots of whitespaces and new lines without failing.
-
-
-
- Gets the current nonce.
-
-
-
-
-
- Gets the Md5 hash bin hex2.
-
- To be hashed.
-
-
-
-
- determines if the nonce is valid or has expired.
-
- nonce value (check wikipedia for info)
- true if the nonce has not expired.
-
-
-
- name used in http request.
-
-
-
-
- Session store using memory for each session.
-
-
-
-
- Initializes the class setting the expirationtimer to clean the session every minute
-
-
-
-
- Delegate for the cleanup timer
-
-
-
-
- Creates a new http session
-
-
-
-
-
- Creates a new http session with a specific id
-
- Id used to identify the new cookie..
- A object.
-
- Id should be generated by the store implementation if it's null or .
-
-
-
-
- Load an existing session.
-
-
-
-
-
-
- Save an updated session to the store.
-
-
-
-
-
- We use the flyweight pattern which reuses small objects
- instead of creating new each time.
-
- EmptyLanguageNode (unused) session that should be reused next time Create is called.
-
-
-
- Remove expired sessions
-
-
-
-
- Remove a session
-
- id of the session.
-
-
-
- Load a session from the store
-
-
- null if session is not found.
-
-
-
- Number of minutes before a session expires.
- Default is 20 minutes.
-
-
-
-
- Keeps information about templates, so we know when to regenerate it.
-
-
-
-
- When the template was compiled.
-
- Use this date to determine if the template is old and needs to be recompiled.
-
-
-
- Template file name.
-
-
-
-
- The actual template.
-
-
-
-
- Validator is used to validate all input items in a form.
-
-
-
-
- Initializes a new instance of the class.
-
- collection to be filled with errors
-
-
-
- Initializes a new instance of the class.
-
- collection to be filled with errors
- Translation used to translate the "name" parameters in all validation methods.
-
-
-
- Initializes a new instance of the class.
-
- Translation used to translate the "name" parameters in all validation methods.
-
-
-
-
-
- form that validation should be made on.
-
-
-
-
-
- collection that all validation errors are added to.
- form that validation should be made on.
-
-
-
-
-
- collection that all validation errors are added to.
- form that validation should be made on.
- Language category used to translate field names.
-
-
-
- Switch to a new http input.
-
- form to use validation for now
-
-
-
- Switch to a new http input.
-
- form to use validation for now
- language for the validation
-
-
-
- Check if a value is digits only
-
- Field name.
- true if field is required (may not be empty)
- string if validated, otherwise string.Empty
-
-
-
- Check if a value is digits only
-
- Field name.
- extra characters that is allowed.
- true if field is required (may not be empty)
- string if validated, otherwise string.Empty
-
-
-
- Check whether the specified form item is an integer.
-
- Form parameter to validate
- value if parameter is an int; 0 if not.
-
-
-
- Check whether the specified form item is an integer.
-
- Form parameter to validate
- Paramater is required (adds an error if it's not specified)
- value if parameter is an int; 0 if not.
-
-
-
- Check whether the specified value is a double.
-
- Name of the parameter
- Paramater is required (adds an error if it's not specified)
- value if parameter is a double; 0 if not.
-
-
-
- Check whether the specified value is a currency amount.
-
- Name of the parameter
- Paramater is required (adds an error if it's not specified)
- value if parameter is a currency amount; 0 if not.
-
-
-
- Validates a string to hex
-
- The name of the field to validate
- If the field must be set
- The value if validated otherwise string.Empty
-
-
-
- Validate that a string only contains letters or digits.
-
- Name of form parameter to validate.
- Value is required.
- value if valid; otherwise string.EmptyLanguageNode.
-
-
-
- Validate that a string only contains letters or digits.
-
- Form parameter name.
- vaue if found; otherwise string.Empty
-
-
-
- Validate that a string only contains letters, digits or the specified characters
-
- Form parameter name.
- may not be null or empty if true.
- any other allowed characters.
- value if valid; otherwise string.Empty
-
-
-
- Validate that a string consists of only letters (including special letters)
-
-
- If a value must be passed
-
-
-
-
- Validate that a string consists of only letters (a-z and A-Z)
-
-
- If a value must be passed
- A string of extra character to test against, dont forget language specific characters and spaces if wished for
-
-
-
-
- Check whether the specified value is an integer.
-
- Name of the parameter
- value if parameter contains valid characters; string.Empty if not.
-
-
-
- Check whether the specified value is an integer.
-
- Name of the parameter
- Paramater is required (adds an error if it's not specified)
- value if parameter contains valid characters; string.Empty if not.
-
-
-
- Validate that a string only contains letters or digits or any of the .
-
- Name of form parameter to validate.
- Value is required.
- value if valid; otherwise string.Empty.
-
-
-
- Validate that a string only contains letters or digits or any of the .
-
- Form parameter name.
- vaue if found; otherwise string.Empty
-
-
-
- Check's weather a parameter is null or not.
-
- Parameter in form
- true if value is not null; otherwise false.
-
-
-
- Validate a string value
-
- Name of form parameter to validate.
- Value is required.
- value if valid; otherwise string.Empty.
-
-
-
- Validate a string parameter in the form
-
- Form parameter name.
- vaue if found; otherwise string.Empty
-
-
-
- validates email address using a regexp.
-
- field name
- field is required (may not be null or empty).
- value if validation is ok; otherwise string.Empty.
-
-
-
- Check whether the specified value is an character.
-
- Name of the parameter
- Paramater is required (adds an error if it's not specified)
- value if parameter is an int; char.MinValue if not.
-
-
-
- Check whether the specified value is an character.
-
- Name of the parameter
- value if parameter is an int; char.MinValue if not.
-
-
-
- Checks whether a field is true (can also be in native language).
-
- field name
- field is required (may not be null or empty).
- true if value is true; false if value is false or if validation failed.
- Check validation errors to see if error ocurred.
-
-
-
- Checks whether a field is true (can also be in native language).
-
- field name
- true if value is true; false if value is false or if validation failed.
- Check validation errors to see if error ocurred.
-
-
-
- Class to handle loading of resource files
-
-
-
-
- ]]>
-
-
-
- Parses a filename and sets it to the extensionless name in lowercase. The extension is cut out without the dot.
-
-
-
-
- string ext;
- string filename = "/uSeR/teSt.haMl";
- ParseName(ref filename, out ext);
- Console.WriteLine("File: " + filename);
- Console.WriteLine("Ext: " + ext);
- -> user/test
- -> haml
-
-
-
-
- Add a resource to a specified uri without extension, ie user/test
-
- The uri to add the resource to
- The instance describing the resource
-
-
-
- Loads resources from a namespace in the given assembly to an uri
-
- The uri to map the resources to
- The assembly in which the resources reside
- The namespace from which to load the resources
-
- resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
-
- will make ie the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
-
-
-
-
- Retrieves a stream for the specified resource path if loaded otherwise null
-
- Path to the resource to retrieve a stream for
- A stream or null if the resource couldn't be found
-
-
-
- Fetch all files from the resource that matches the specified arguments.
-
- The path to the resource to extract
-
- a list of files if found; or an empty array if no files are found.
-
-
-
-
- Fetch all files from the resource that matches the specified arguments.
-
- Where the file should reside.
- Files to check
-
- a list of files if found; or an empty array if no files are found.
-
-
-
-
- Returns whether or not the loader has an instance of the file requested
-
- The name of the template/file
- True if the loader can provide the file
-
-
-
- We dont want to let the server to die due to exceptions thrown in worker threads.
- therefore we use this delegate to give you a change to handle uncaught exceptions.
-
- Class that the exception was thrown in.
- Exception
-
- Server will throw a InternalServerException in release version if you dont
- handle this delegate.
-
-
-
-
- Method marked with this attribute determines if authentication is required.
-
-
-
-
-
-
- The method should take one parameter (int level), return a bool and be protected/private.
- You should throw UnauthorizedException if you are using HTTP authentication.
-
-
- = level;
- }
- }
- ]]>
-
-
-
-
- This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie).
- The framework might switch class in the future and we dont want to have to replace all instances
-
-
-
-
- Let's copy all the cookies.
-
- value from cookie header.
-
-
-
- Adds a cookie in the collection.
-
- cookie to add
- cookie is null
-
-
-
- Gets a collection enumerator on the cookie list.
-
- collection enumerator
-
-
-
- Remove all cookies.
-
-
-
-
- Returns an enumerator that iterates through the collection.
-
-
-
- A that can be used to iterate through the collection.
-
- 1
-
-
-
- Gets the count of cookies in the collection.
-
-
-
-
- Gets the cookie of a given identifier (null if not existing).
-
-
-
-
- Delegate used to find a realm/domain.
-
-
-
-
- Realms are used during HTTP Authentication
-
-
-
-
-
-
- A complete HTTP server, you need to add a module to it to be able to handle incoming requests.
-
-
-
- // this small example will add two web site modules, thus handling
- // two different sites. In reality you should add Controller modules or something
- // two the website modules to be able to handle different requests.
- HttpServer server = new HttpServer();
- server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB"));
- server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX"));
-
- // start regular http
- server.Start(IPAddress.Any, 80);
-
- // start https
- server.Start(IPAddress.Any, 443, myCertificate);
-
-
-
-
-
-
-
-
-
- Initializes a new instance of the class.
-
-
-
-
- Initializes a new instance of the class.
-
- Form decoders are used to convert different types of posted data to the object types.
-
-
-
-
-
- Initializes a new instance of the class.
-
- A session store is used to save and retrieve sessions
-
-
-
-
- Initializes a new instance of the class.
-
- The log writer.
-
-
-
-
- Initializes a new instance of the class.
-
- Form decoders are used to convert different types of posted data to the object types.
- The log writer.
-
-
-
-
-
-
- Initializes a new instance of the class.
-
- Form decoders are used to convert different types of posted data to the object types.
- A session store is used to save and retrieve sessions
- The log writer.
-
-
-
-
-
-
-
- Adds the specified rule.
-
- The rule.
-
-
-
- Add a to the server.
-
- mode to add
-
-
-
- Decodes the request body.
-
- The request.
-
-
-
- Generate a HTTP error page (that will be added to the response body).
- response status code is also set.
-
- Response that the page will be generated in.
- .
- response body contents.
-
-
-
- Generate a HTTP error page (that will be added to the response body).
- response status code is also set.
-
- Response that the page will be generated in.
- exception.
-
-
-
- Realms are used by the s.
-
- HTTP request
- domain/realm.
-
-
-
- Process an incoming request.
-
- connection to client
- request information
- response that should be filled
- session information
-
-
-
- Can be overloaded to implement stuff when a client have been connected.
-
-
- Default implementation does nothing.
-
- client that disconnected
- disconnect reason
-
-
-
- Handle authentication
-
-
-
-
- true if request can be handled; false if not.
-
-
-
- Will request authentication.
-
-
- Sends respond to client, nothing else can be done with the response after this.
-
-
-
-
-
-
-
- Start the web server using regular HTTP.
-
- IP Address to listen on, use IpAddress.Any to accept connections on all ip addresses/network cards.
- Port to listen on. 80 can be a good idea =)
-
-
-
- Accept secure connections.
-
- IP Address to listen on, use IpAddress.Any to accept connections on all ipaddresses/network cards.
- Port to listen on. 80 can be a good idea =)
- Certificate to use
-
-
-
- shut down the server and listeners
-
-
-
-
- write an entry to the log file
-
- importance of the message
- log message
-
-
-
- write an entry to the log file
-
- object that wrote the message
- importance of the message
- log message
-
-
-
- Modules used for authentication. The module that is is added first is used as
- the default authentication module.
-
- Use the corresponding property
- in the WebSiteModule if you are using multiple websites.
-
-
-
- Form decoder providers are used to decode request body (which normally contains form data).
-
-
-
-
- Server name sent in HTTP responses.
-
-
- Do NOT include version in name, since it makes it
- easier for hackers.
-
-
-
-
- Name of cookie where session id is stored.
-
-
-
-
- Specified where logging should go.
-
-
-
-
-
-
-
- Number of connections that can wait to be accepted by the server.
-
- Default is 10.
-
-
-
- Realms are used during HTTP authentication.
- Default realm is same as server name.
-
-
-
-
- Let's to receive unhandled exceptions from the threads.
-
-
- Exceptions will be thrown during debug mode if this event is not used,
- exceptions will be printed to console and suppressed during release mode.
-
-
-
-
- The request requires user authentication. The response MUST include a
- WWW-Authenticate header field (section 14.47) containing a challenge
- applicable to the requested resource.
-
- The client MAY repeat the request with a suitable Authorization header
- field (section 14.8). If the request already included Authorization
- credentials, then the 401 response indicates that authorization has been
- refused for those credentials. If the 401 response contains the same challenge
- as the prior response, and the user agent has already attempted authentication
- at least once, then the user SHOULD be presented the entity that was given in the response,
- since that entity might include relevant diagnostic information.
-
- HTTP access authentication is explained in rfc2617:
- http://www.ietf.org/rfc/rfc2617.txt
-
- (description is taken from
- http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2)
-
-
-
-
- Create a new unauhtorized exception.
-
-
-
-
-
- Create a new unauhtorized exception.
-
- reason to why the request was unauthorized.
- inner exception
-
-
-
- Create a new unauhtorized exception.
-
- reason to why the request was unauthorized.
-
-
-
- Generates C# rendering object using ASP similiar tags in the HTML code.
-
-
-
-
- Generate C# code from the template.
-
- A textwriter that the generated code will be written to.
- If the template have not been parsed first.
- If template is incorrect
-
-
-
- Parse a file and convert into to our own template object code.
-
- Path and filename to a template
- If something is incorrect in the template.
-
-
-
-
-
-
-
-
- Parse a file and convert into to our own template object code.
-
- A textreader containing our template
- If something is incorrect in the template.
-
-
-
- Purpose if this class is to take template objects and keep them in
- memory. It will also take a filename and the code generator to use
- if when the template have been changed on disk.
-
-
-
-
- Initializes a new instance of the class.
-
-
- Template loaders used to load templates from any source.
- The loaders will be invoked in the order they are given, that is the first loader will always be asked to give a template
- first.
-
-
-
-
- Initializes a new instance of the class.
-
- Uses the file template loader.
-
-
-
- Add a template generator
-
- File extension without the dot.
- Generator to handle the extension
- If the generator already exists.
- If file extension is incorrect
- If generator is not specified.
-
-
- cache.Add("haml", new HamlGenerator());
-
-
-
-
-
- This type should be included, so it may be called from the scripts (name space and assembly).
-
-
-
-
-
- Checks the template.
-
- Template information, filename must be set.
- true if template exists and have been compiled.
-
-
-
- Compiles the specified code.
-
- Name of template.
- c# code generated from a template.
- Arguments as in name, value, name, value, name, value
-
- An id to specify the exact instance of a template. Made from joining the 'TemplateClass' with the hashcode of the filename
- and the hashcode of the supplied arguments
-
- Template
- If compilation fails
-
-
-
- Will generate code from the template.
- Next step is to compile the code.
-
- Path and filename to template.
-
- If no template generator exists for the specified extension.
- If parsing/compiling fails
-
-
-
-
- Find a template using wildcards in filename.
-
- Full path (including wildcards in filename) to where we should find a template.
- First found generator if an extension was matched; otherwise null.
- method is not thread safe
-
-
-
- Render a partial
-
- Path and filename
- Variables used in the template. Should be specified as "name, value, name, value" where name is variable name and value is variable contents.
- Arguments passed from parent template
-
-
-
-
-
-
-
- Generate HTML from a template.
-
- Path and filename
- Variables used in the template. Should be specified as "name, value, name, value" where name is variable name and value is variable contents.
-
-
-
-
-
- string html = cache.Generate("views\\users\\view.haml", new TemplateArguments("user", dbUser, "isAdmin", dbUser.IsAdmin), null);
-
-
-
-
-
- Keeps information about templates, so we know when to regenerate it.
-
-
-
-
- Container to bind resource names to assemblies
-
-
-
-
- Instantiates an instance of
-
- The full name/path of the resource
- The assembly the resource exists in
-
-
-
- Retrieves a stream to the resouce
-
- Null if the resource couldn't be located somehow
-
-
-
- Retrieves the assembly the resource resides in
-
-
-
-
- Retrieves the full name/path of the assembly
-
-
-
-
- Retrieves the extension of the resource
-
-
-
-
- This template loader loads all templates from a folder on the hard drive.
-
-
-
-
- Initializes a new instance of the class.
-
- A prefix that is prepended to all requested files.
-
-
-
-
- Initializes a new instance of the class.
-
-
-
-
- Load a template into a and return it.
-
- Relative path (and filename) to template.
-
- a if file was found; otherwise null.
-
-
-
-
- Fetch all files from the resource that matches the specified arguments.
-
- Where the file should reside.
- Files to check
-
- a list of files if found; or an empty array if no files are found.
-
-
-
-
- Returns whether or not the loader has an instance of the file requested
-
- The name of the template/file
- True if the loader can provide the file
-
-
-
- Check's whether a template should be reloaded or not.
-
- template information
-
- true if template is OK; false if it do not exist or are old.
-
-
-
-
- A prefix that is prepended to all requested files.
-
-
-
- \\templateName.*"
- mgr.PathPrefix = "views\\";
- ]]>
-
-
- PathPrefix may not be null, only string.Empty
-
-
-
-
- Helpers to make XML handling easier
-
-
-
-
- Serializes object to XML.
-
- object to serialize.
- xml
-
- Removes namespaces and adds intendation
-
-
-
-
- Response that is sent back to the web browser / client.
-
- A response can be sent if different ways. The easiest one is
- to just fill the Body stream with content, everything else
- will then be taken care of by the framework. The default content-type
- is text/html, you should change it if you send anything else.
-
- The second and slighty more complex way is to send the response
- as parts. Start with sending the header using the SendHeaders method and
- then you can send the body using SendBody method, but do not forget
- to set ContentType and ContentLength before doing so.
-
-
- public void MyHandler(IHttpRequest request, IHttpResponse response)
- {
-
- }
-
-
-
-
- Add another header to the document.
-
- Name of the header, case sensitive, use lower cases.
- Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n
- If headers already been sent.
- If value conditions have not been met.
- Adding any header will override the default ones and those specified by properties.
-
-
-
- Send headers and body to the browser.
-
- If content have already been sent.
-
-
-
- Make sure that you have specified ContentLength and sent the headers first.
-
-
- If headers have not been sent.
-
- offest of first byte to send
- number of bytes to send.
-
-
- This method can be used if you want to send body contents without caching them first. This
- is recommended for larger files to keep the memory usage low.
-
-
-
- Make sure that you have specified ContentLength and sent the headers first.
-
-
- If headers have not been sent.
-
-
-
- This method can be used if you want to send body contents without caching them first. This
- is recommended for larger files to keep the memory usage low.
-
-
-
- Send headers to the client.
-
- If headers already been sent.
-
-
-
-
-
-
- Redirect client to somewhere else using the 302 status code.
-
- Destination of the redirect
- If headers already been sent.
- You can not do anything more with the request when a redirect have been done. This should be your last
- action.
-
-
-
- redirect to somewhere
-
- where the redirect should go
-
- No body are allowed when doing redirects.
-
-
-
-
- The body stream is used to cache the body contents
- before sending everything to the client. It's the simplest
- way to serve documents.
-
-
-
-
- The chunked encoding modifies the body of a message in order to
- transfer it as a series of chunks, each with its own size indicator,
- followed by an OPTIONAL trailer containing entity-header fields. This
- allows dynamically produced content to be transferred along with the
- information necessary for the recipient to verify that it has
- received the full message.
-
-
-
-
- Kind of connection
-
-
-
-
- Encoding to use when sending stuff to the client.
-
- Default is UTF8
-
-
-
- Number of seconds to keep connection alive
-
- Only used if Connection property is set to ConnectionType.KeepAlive
-
-
-
- Status code that is sent to the client.
-
- Default is HttpStatusCode.Ok
-
-
-
- Information about why a specific status code was used.
-
-
-
-
- Size of the body. MUST be specified before sending the header,
- unless property Chunked is set to true.
-
-
-
-
- Kind of content in the body
-
- Default is text/html
-
-
-
- Headers have been sent to the client-
-
- You can not send any additional headers if they have already been sent.
-
-
-
- The whole response have been sent.
-
-
-
-
- Cookies that should be created/changed.
-
-
-
-
- Type of HTTP connection
-
-
-
-
- Connection is closed after each request-response
-
-
-
-
- Connection is kept alive for X seconds (unless another request have been made)
-
-
-
-
- represents a http input item. Each item can have multiple sub items, a sub item
- is made in a html form by using square brackets
-
-
- // becomes:
- Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value);
-
-
- All names in a form SHOULD be in lowercase.
-
-
-
- Representation of a non-initialized HttpInputItem
-
-
-
- Initializes an input item setting its name/identifier and value
-
- Parameter name/id
- Parameter value
-
-
- Creates a deep copy of the item specified
- The item to copy
- The function makes a deep copy of quite a lot which can be slow
-
-
-
- Add another value to this item
-
-
-
-
-
- checks if a subitem exists (and has a value).
-
- name in lower case
- true if the subitem exists and has a value; otherwise false.
-
-
- Returns a formatted representation of the instance with the values of all contained parameters
-
-
-
- Outputs the string in a formatted manner
-
- A prefix to append, used internally
- produce a query string
-
-
-
- Add a sub item
-
- Can contain array formatting, the item is then parsed and added in multiple levels
-
-
-
-
- Returns an enumerator that iterates through the collection.
-
-
-
- A that can be used to iterate through the collection.
-
- 1
-
-
-
- Returns an enumerator that iterates through a collection.
-
-
-
- An object that can be used to iterate through the collection.
-
- 2
-
-
-
- Outputs the string in a formatted manner
-
- A prefix to append, used internally
-
-
-
-
- Number of values
-
-
-
-
- Get a sub item
-
- name in lower case.
- HttpInputItem.Empty if no item was found.
-
-
-
- Name of item (in lower case).
-
-
-
-
- Returns the first value, or null if no value exist.
-
-
-
-
- Returns the last value, or null if no value exist.
-
-
-
-
- Returns the list with values.
- todo: Return a readonly collection
-
-
-
-
-
-
- name in lower case
-
-
-
-
- Can handle application/x-www-form-urlencoded
-
-
-
-
-
- Stream containing the content
- Content type (with any additional info like boundry). Content type is always supplied in lower case
- Stream enconding
-
- A http form, or null if content could not be parsed.
-
- If contents in the stream is not valid input data.
-
-
-
- Checks if the decoder can handle the mime type
-
- Content type (with any additional info like boundry). Content type is always supplied in lower case.
- True if the decoder can parse the specified content type
-
-
-
- Used to simply testing of controls.
-
-
-
-
- Fake host name, default is "http://localhost"
-
-
-
-
- Session used if null have been specified as argument to one of the class methods.
-
-
-
-
- Send a GET request to a controller.
-
- Controller receiving the post request.
- Uri visited.
- Response from the controller.
- Session used during the test. null = is used.
- body posted by the response object
-
-
- void MyTest()
- {
- ControllerTester tester = new ControllerTester();
-
- MyController controller = new MyController();
- IHttpResponse response;
- string text = Get(controller, "/my/hello/1?hello=world", out response, null);
- Assert.Equal("world|1", text);
- }
-
-
-
-
-
- Send a POST request to a controller.
-
- Controller receiving the post request.
- Uri visited.
- Form being processed by controller.
- Response from the controller.
- Session used during the test. null = is used.
- body posted by the response object
-
-
- void MyTest()
- {
- // Create a controller.
- MyController controller = new MyController();
-
- // build up a form that is used by the controller.
- HttpForm form = new HttpForm();
- form.Add("user[firstName]", "Jonas");
-
- // Invoke the request
- ControllerTester tester = new ControllerTester();
- IHttpResponse response;
- string text = tester.Get(controller, "/user/create/", form, out response, null);
-
- // validate response back from controller.
- Assert.Equal("User 'Jonas' has been created.", text);
- }
-
-
-
-
-
- Invoked when a client have been accepted by the
-
-
- Can be used to revoke incoming connections
-
-
-
-
- Initializes a new instance of the class.
-
- The socket.
-
-
-
- Client may not be handled.
-
-
-
-
- Accepted socket.
-
-
-
-
- Client should be revoked.
-
-
-
-
- cookie being sent back to the browser.
-
-
-
-
-
- cookie sent by the client/browser
-
-
-
-
-
- Constructor.
-
- cookie identifier
- cookie content
- id or content is null
- id is empty
-
-
-
- Gets the cookie HTML representation.
-
- cookie string
-
-
-
- Gets the cookie identifier.
-
-
-
-
- Cookie value. Set to null to remove cookie.
-
-
-
-
- Constructor.
-
- cookie identifier
- cookie content
- cookie expiration date. Use DateTime.MinValue for session cookie.
- id or content is null
- id is empty
-
-
-
- Create a new cookie
-
- name identifying the cookie
- cookie value
- when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.
- Path to where the cookie is valid
- Domain that the cookie is valid for.
-
-
-
- Create a new cookie
-
- Name and value will be used
- when the cookie expires.
-
-
-
- Gets the cookie HTML representation.
-
- cookie string
-
-
-
- When the cookie expires.
- DateTime.MinValue means that the cookie expires when the session do so.
-
-
-
-
- Cookie is only valid under this path.
-
-
-
-
- Interface for dynamically generated templates.
-
-
-
-
-
- Run the template to generate HTML code.
-
- arguments passed to the template
- template manager (a manager is used to generate templates)
- HTML code.
-
-
-
- Contains information on where in the template the error occurred, and what the error was.
-
-
-
-
- Initializes a new instance of the class.
-
- Line that the error appeared on.
- error description.
-
-
-
- Initializes a new instance of the class.
-
- Line that the error appeared on.
- error description.
- line contents.
-
-
-
- Returns the actual line where the error originated
-
-
-
-
- Line number in template
-
-
-
-
- The ’-’ character makes the text following it into “silent” code: C# code that is evaluated, but not output.
- It is not recommended that you use this widely; almost all processing code and logic should be restricted to the Controller, Helpers, or partials.
-
- For example
-
- - string foo = "hello"
- - foo += " there"
- - foo += " you!"
- %p= foo
-
-
- Is compiled to
-
-
- hello there you!
-
-
-
-
-
-
- determines if this node can handle the line (by checking the first word);
-
- Controller char (word)
- true if text belongs to this node type
- first node on line
-
-
-
- Parse node contents add return a fresh node.
-
- List containing all node types
- Node that this is a subnode to. Can be null
- Line to parse
- Where to start the parsing. Should be set to where the next node should start parsing.
- A node corresponding to the bla bla; null if parsing failed.
-
-
-
-
- Convert the node to c# code
-
- True if we are inside the internal stringbuilder
- true if all subnodes fit on one line
- smallEnough is a default value, recalc it
- c# code
-
-
-
- Convert node to HTML (with ASP-tags)
-
- HTML string
-
-
-
- The compiler is responsible of creating a render object which can be
- cached and used over and over again.
-
-
-
-
-
-
- Base c# code for a template object.
-
-
-
-
- Create a new template compiler
-
-
-
-
- Adds the specified type.
-
- The type.
-
-
-
- Compiles the specified args.
-
- Arguments, should contain "name, value, name, value" etc.
- c# code that will be included in the generated template class
- Id of the template class
- Tiny template if successful; otherwise null.
- If compilation fails
- If args are incorrect
-
-
-
- Response that is sent back to the web browser / client.
-
- A response can be sent if different ways. The easiest one is
- to just fill the Body stream with content, everything else
- will then be taken care of by the framework. The default content-type
- is text/html, you should change it if you send anything else.
-
- The second and slighty more complex way is to send the response
- as parts. Start with sending the header using the SendHeaders method and
- then you can send the body using SendBody method, but do not forget
- to set ContentType and ContentLength before doing so.
-
-
- public void MyHandler(IHttpRequest request, IHttpResponse response)
- {
-
- }
-
- todo: add two examples, using SendHeaders/SendBody and just the Body stream.
-
-
-
- Initializes a new instance of the class.
-
- The context.
- The request.
-
-
-
- Add another header to the document.
-
- Name of the header, case sensitive, use lower cases.
- Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n
- If headers already been sent.
- If value conditions have not been met.
- Adding any header will override the default ones and those specified by properties.
-
-
-
- Send headers and body to the browser.
-
- If content have already been sent.
-
-
-
- Make sure that you have specified ContentLength and sent the headers first.
-
-
- If headers have not been sent.
-
- offest of first byte to send
- number of bytes to send.
-
-
- This method can be used if you want to send body contents without caching them first. This
- is recommended for larger files to keep the memory usage low.
-
-
-
- Make sure that you have specified ContentLength and sent the headers first.
-
-
- If headers have not been sent.
-
-
-
- This method can be used if you want to send body contents without caching them first. This
- is recommended for larger files to keep the memory usage low.
-
-
-
- Send headers to the client.
-
- If headers already been sent.
-
-
-
-
-
-
- Redirect client to somewhere else using the 302 status code.
-
- Destination of the redirect
- If headers already been sent.
- You can not do anything more with the request when a redirect have been done. This should be your last
- action.
-
-
-
- redirect to somewhere
-
- where the redirect should go
-
- No body are allowed when doing redirects.
-
-
-
-
- The body stream is used to cache the body contents
- before sending everything to the client. It's the simplest
- way to serve documents.
-
-
-
-
- The chunked encoding modifies the body of a message in order to
- transfer it as a series of chunks, each with its own size indicator,
- followed by an OPTIONAL trailer containing entity-header fields. This
- allows dynamically produced content to be transferred along with the
- information necessary for the recipient to verify that it has
- received the full message.
-
-
-
-
- Kind of connection
-
-
-
-
- Encoding to use when sending stuff to the client.
-
- Default is UTF8
-
-
-
- Number of seconds to keep connection alive
-
- Only used if Connection property is set to ConnectionType.KeepAlive
-
-
-
- Status code that is sent to the client.
-
- Default is HttpStatusCode.Ok
-
-
-
- Information about why a specific status code was used.
-
-
-
-
- Size of the body. MUST be specified before sending the header,
- unless property Chunked is set to true.
-
-
-
-
- Kind of content in the body
-
- Default is text/html
-
-
-
- Headers have been sent to the client-
-
- You can not send any additional headers if they have already been sent.
-
-
-
- The whole response have been sent.
-
-
-
-
- Cookies that should be created/changed.
-
-
-
-
- A reverse proxy are used to act as a bridge between local (protected/hidden) websites
- and public clients.
-
- A typical usage is to allow web servers on non standard ports to still be available
- to the public clients, or allow web servers on private ips to be available.
-
-
-
-
-
-
- Base url requested from browser
- Base url on private web server
-
- // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas
- _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/");
-
-
-
-
- Method that determines if an url should be handled or not by the module
-
- Url requested by the client.
- true if module should handle the url.
-
-
-
- Method that process the url
-
- Information sent by the browser about the request
- Information that is being sent back to the client.
- Session used to
-
-
- Container for posted form data
-
-
- Instance to help mark a non-initialized form
-
-
- Initializes a form container with the specified name
-
-
-
- Makes a deep copy of the input
-
- The input to copy
-
-
-
- Adds a file to the collection of posted files
-
- The file to add
- If the file is already added
- If file is null
- If the instance is HttpForm.EmptyForm which cannot be modified
-
-
-
- Checks if the form contains a specified file
-
- Field name of the file parameter
- True if the file exists
- If the instance is HttpForm.EmptyForm which cannot be modified
-
-
-
- Retrieves a file held by by the form
-
- The identifier of the file
- The requested file or null if the file was not found
- If name is null or empty
- If the instance is HttpForm.EmptyForm which cannot be modified
-
-
- Disposes all held HttpFile's and resets values
-
-
-
- The server encountered an unexpected condition which prevented it from fulfilling the request.
-
-
-
-
- Initializes a new instance of the class.
-
-
-
-
- Initializes a new instance of the class.
-
- error message.
-
-
-
- Initializes a new instance of the class.
-
- error message.
- inner exception.
-
-
-
- This attribute tells the controller that the method
- uses SendHeader and/or SendBody to handle the request.
-
-
-
-
- Contains line text and state information about a line in a HAML template.
-
-
-
-
- Initializes a new instance of the class.
-
- The line number.
- The unparsed data (line contents).
-
-
-
- Will check that all rule conditions have been met.
- Will also remove the rules if they are done.
-
-
-
-
-
-
- Append another line
-
-
-
-
-
- Parsed line contents (without whitespaces in the beginning)
-
- text contents
-
-
-
- Set intendation info to previously added line text.
-
-
-
-
-
-
- Assign line text
-
-
-
-
-
-
-
-
-
-
- If extra lines have been added.
-
-
-
- If the next line should be appended to us (multi line)
-
-
-
-
- Do NOT add yourself using the Add methods of the linkedList.
- Parent property will add node.
-
-
-
-
- Untouched line text
-
-
-
-
- Has one or more children (intented more that this one)
-
-
-
-
- Number of intends (two spaces = 1, one tab = 1)
-
-
-
-
- Line number
-
-
-
-
- Parent node (one level up in intendation)
-
-
-
-
- All line data generated on one line
-
-
-
-
- IRule have not got all needed information yet,
- keep appending lines to this LineInfo until rule says that it's done.
-
-
-
-
- Number of whitespaces before actual entry beings.
-
-
-
-
- True if node is selfclosed (i.e. <br />)
-
-
-
-
- Parse node contents add return a fresh node.
-
- List containing all node types
- Node that this is a subnode to. Can be null
- Line to parse
- Where to start the parsing. Should be set to where the next node should start parsing.
- A node corresponding to the bla bla; null if parsing failed.
-
-
-
-
- determines if this node can handle the line (by checking the first word);
-
- Controller char (word)
- true if text belongs to this node type
- First node on line, used since some nodes cannot exist on their own on a line.
-
-
-
- Convert node to HTML (with ASP-tags)
-
- HTML string
-
-
-
-
- Convert the node to c# code
-
- True if we are inside the internal stringbuilder
- true if all subnodes fit on one line
- smallEnough is a default value, recalc it
- c# code
-
-
-
- Text nodes should be added as child.
-
-
-
-
- Used to inform http server that
-
-
-
-
- Eventarguments used when an exception is thrown by a module
-
- the exception
-
-
-
- Exception thrown in a module
-
-
-
-
- View controllers integrates the templates, by adding
- Render methods.
-
-
-
-
- Create a new .
-
-
-
-
- Create a new .
-
- prototype to copy information from.
-
-
-
- Render template for the currently invoked method.
-
- arguments/parameters used in template
- template generated content
- calls RenderActionWithErrors
-
-
-
- Render contents into a template.
-
- method/template to generate
- arguments/parameters used in template
- template generated content
- calls RenderActionWithErrors.
-
-
-
- Merge arguments array and Arguments property.
-
- Arguments array to merge
- arguments/parameters that can be used in the template.
- Will add Request/Response/Session arguments
-
-
-
- Renders errors from the property into the
- current method template, or as a JavaScript alert if the request is Ajax.
-
- name of the currently invoked method.
- arguments used in the method template.
- generated string
- Creates a JavaScript Alert box if request is Ajax.
-
-
-
- Renders errors from the property into the
- current method template, or as a JavaScript alert if the request is Ajax.
-
- A collection of errors.
- name of the currently invoked method.
- arguments used in the method template.
- generated string
- Creates a JavaScript Alert box if request is Ajax.
-
-
-
- Switches content-type to "text/JavaScript" and returns content.
-
- JavaScript to send to the client.
- JavaScript
-
-
-
- Creates a JavaScript "alert" filled with all errors.
-
-
- a
-
-
-
- renders one of the layouts
-
- layout to render (should be found in the "views\\layouts" folder).
- contents will be put in the template variable called "text".
- generated text/HTML.
-
-
-
- Render a template.
-
- Merges the Arguments property with the args parameter and pass those to the template.
- controller name are used as a folder name when looking for the template.
- method are used as filename when looking for the template.
- arguments that should be passed to the template.
-
-
-
-
- Invoked each time a new request is about to be invoked.
-
- Can be used to clear old data.
-
-
-
-
-
-
- Arguments that are being used in the templates.
-
-
-
-
- A set of errors that occurred during request processing.
- Key should be argument name (if argument error, otherwise ), value should be
- the error message.
-
- Errors can be rendered into templates using the method.
-
-
-
-
- True if we always should render contents inside page layouts when request is Ajax.
-
- default is false.
-
-
-
- Which page layout to use (without file extension)
-
-
-
- Page layouts should be places in the Views\Layouts folder.
-
-
- default is "Application"
-
-
-
-
-
- Page title (are added as a parameter to the layout template, use it in <title> HTML tag.
-
-
-
-
- Arguments sent when a is cleared
-
-
-
-
- Instantiates the arguments for the event
-
- True if the session is cleared due to expiration
-
-
-
- Returns true if the session is cleared due to expiration
-
-
-
-
- Delegate for when a IHttpSession is cleared
-
- this is being cleared.
- Arguments for the clearing
-
-
-
- Parse node contents add return a fresh node.
-
- List containing all node types
- Node that this is a subnode to. Can be null
- Line to parse
- Where to start the parsing. Should be set to where the next node should start parsing.
- A node corresponding to the bla bla; null if parsing failed.
-
-
-
-
- determines if this node can handle the line (by checking the first word);
-
- Controller char (word)
- true if text belongs to this node type
- first node on line
-
-
-
- Convert node to HTML (with ASP-tags)
-
- HTML string
-
-
-
- Convert the node to c# code
-
- True if we are inside the internal stringbuilder
- true if all subnodes fit on one line
- smallEnough is a default value, recalc it
- c# code
-
-
-
- A list of prototype nodes.
-
-
-
-
- Creates the node.
-
- node identifier.
- parent node.
- created node if identifier was found; otherwise null.
-
-
-
-
-
-
- first node on line
-
-
-
-
- Add a prototype
-
- prototype node
-
-
-
- The purpose of this module is to serve files.
-
-
-
-
- Initializes a new instance of the class.
-
- Uri to serve, for instance "/files/"
- Path on hard drive where we should start looking for files
- If true a Last-Modifed header will be sent upon requests urging webbrowser to cache files
-
-
-
- Initializes a new instance of the class.
-
- Uri to serve, for instance "/files/"
- Path on hard drive where we should start looking for files
-
-
-
- Mimtypes that this class can handle per default
-
-
-
-
- Determines if the request should be handled by this module.
- Invoked by the HttpServer
-
-
- true if this module should handle it.
-
-
-
- check if source contains any of the chars.
-
-
-
-
-
-
-
- Method that process the url
-
- Information sent by the browser about the request
- Information that is being sent back to the client.
- Session used to
-
-
-
- return a file extension from an absolute uri path (or plain filename)
-
-
-
-
-
-
- List with all mime-type that are allowed.
-
- All other mime types will result in a Forbidden http status code.
-
-
-
- characters that may not exist in a path.
-
-
- fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" };
-
-
-
-
- Generic helper functions for Http
-
-
-
-
- Version string for HTTP v1.0
-
-
-
-
- Version string for HTTP v1.1
-
-
-
-
- An empty url
-
-
-
-
- Parses a querystring.
-
- Querystring (url decoded)
- A HttpInput object if successful; otherwise HttpInput.Empty
-
-
-
- The server understood the request, but is refusing to fulfill it.
- Authorization will not help and the request SHOULD NOT be repeated.
- If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled,
- it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information
- available to the client, the status code 404 (Not Found) can be used instead.
-
- Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
-
-
-
-
- Initializes a new instance of the class.
-
- error message
-
-
-
- Delegate used to let authentication modules authenticate the username and password.
-
- Realm that the user want to authenticate in
- Username specified by client
- Password supplied by the delagete
- object that will be stored in a session variable called if authentication was successful.
- throw forbidden exception if too many attempts have been made.
-
-
-
- Let's you decide on a system level if authentication is requried.
- You can also decide if authentication is required in each HttpModule.
-
- Http request from client
- true if user should be authenticated.
- throw ForbiddenException if no more attempts are allowed.
- If no more attempts are allowed
-
-
-
- Represents a html class node.
-
-
-
-
- Parse node contents add return a fresh node.
-
- List containing all node types
- Node that this is a subnode to. Can be null
- Line to parse
- Where to start the parsing. Should be set to where the next node should start parsing.
- A node corresponding to the bla bla; null if parsing failed.
-
-
-
-
- determines if this node can handle the line (by checking the first word);
-
- Controller char (word)
- true if text belongs to this node type
- first node on line
-
-
-
- Convert node to HTML (with ASP-tags)
-
- HTML string
-
-
-
- Convert the node to c# code
-
- True if we are inside the internal stringbuilder
- true if all subnodes fit on one line
- smallEnough is a default value, recalc it
- c# code
-
-
-
-
-
-
- http://www.faqs.org/rfcs/rfc1867.html
-
-
-
-
- multipart/form-data
-
-
-
-
- form-data
-
-
-
-
-
-
- Stream containing the content
- Content type (with any additional info like boundry). Content type is always supplied in lower case
- Stream enconding
- A http form, or null if content could not be parsed.
- If contents in the stream is not valid input data.
- If any parameter is null
-
-
-
- Checks if the decoder can handle the mime type
-
- Content type (with any additional info like boundry). Content type is always supplied in lower case.
- True if the decoder can parse the specified content type
-
-
-
-
-
-
-
-
-
-
- Represents a field in a multipart form
-
-
-
- Lists content type mime types.
-
-
-
-
- text/plain
-
-
-
-
- text/haml
-
-
-
-
- content type for javascript documents = application/javascript
-
-
-
- RFC 4329 states that text/javascript have been superseeded by
- application/javascript. You might still want to check browser versions
- since older ones do not support application/javascript.
-
- Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/
-
-
-
-
- text/xml
-
-
-
-
- A list of content types
-
-
-
-
-
-
- Semicolon separated content types.
-
-
-
- Returns an enumerator that iterates through a collection.
-
-
- An object that can be used to iterate through the collection.
-
-
-
-
- Searches for the specified type
-
- Can also be a part of a type (searching for "xml" would return true for "application/xml").
- true if type was found.
-
-
-
- Get this first content type.
-
-
-
-
- Fetch a content type
-
- Part of type ("xml" would return "application/xml")
-
- All content types are in lower case.
-
-
-
+
+
+
+ HttpServer_OpenSim
+
+
+
+
+ Cookies that should be set.
+
+
+
+
+ Adds a cookie in the collection.
+
+ cookie to add
+ cookie is null
+
+
+
+ Copy a request cookie
+
+
+ When the cookie should expire
+
+
+
+ Gets a collection enumerator on the cookie list.
+
+ collection enumerator
+
+
+
+ Remove all cookies
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+
+ A that can be used to iterate through the collection.
+
+ 1
+
+
+
+ Gets the count of cookies in the collection.
+
+
+
+
+ Gets the cookie of a given identifier (null if not existing).
+
+
+
+
+ Generates C#/HTML from HAML code.
+
+ HAML documentation: http://haml.hamptoncatlin.com/docs/rdoc/classes/Haml.html
+
+
+
+ A code generator is used to convert template code to something that we can
+ work with, as HTML or c# code.
+
+
+
+
+
+ Generate C# code from the template.
+
+ A that the generated code will be written to.
+ If the template have not been parsed first.
+ If template is incorrect
+
+
+
+ Parse a file and convert into to our own template object code.
+
+ Path and filename to a template
+ If something is incorrect in the template.
+
+
+
+
+
+
+
+
+ Parse a file and convert into to our own template object code.
+
+ A containing our template
+ If something is incorrect in the template.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The log writer.
+
+
+
+ Check and validate indentation
+
+ line to check
+ number of white spaces
+ number of indentations (2 white spaces = 1 intend, 1 tab = 1 intend)
+
+
+
+ Check indentation
+
+ fills line with intend info
+
+
+
+ check if current line is a multi line
+
+ previous line
+ current line
+
+
+
+ Generate HTML code from the template.
+ Code is encapsulated in <% and <%=
+
+ A that the generated code will be written to.
+ If the template have not been parsed first.
+ If template is incorrect
+
+
+
+ Get the first word (letters and digits only) from the specified offset.
+
+
+
+
+
+
+
+ Check indentation / node placement
+
+
+
+
+ Parse a node
+ todo: improve doc
+
+
+
+
+
+
+
+
+ PreParse goes through the text add handles indentation
+ and all multi line cases.
+
+ Reader containing the text
+
+
+
+ print the entire document
+
+
+
+
+ Print line information to the console
+
+
+
+
+
+ Read next line from file
+
+ true if line could be read; false if EOF.
+
+
+
+ Generates a string with spaces.
+
+ number of spaces.
+ string of spaces.
+
+
+
+ Parse a file and convert into to our own template object code.
+
+ Path and filename to a template
+ If something is incorrect in the template.
+
+
+
+
+
+
+
+
+
+ Parse a file and convert into to our own template object code.
+
+ A containing our template
+ If something is incorrect in the template.
+
+
+
+ Generate C# code from the template.
+
+ A that the generated code will be written to.
+ If the template have not been parsed first.
+ If template is incorrect
+
+
+
+ Property to retrieve the root node for the latest parsed document
+
+
+
+
+ Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules
+ a regular expression can be used to identify redirect urls and thier targets.
+
+
+ [a-z0-9]+)", "/users/${target}?find=true", RegexOptions.IgnoreCase)
+ ]]>
+
+
+
+
+ redirects from one url to another.
+
+
+
+
+ Rules are used to perform operations before a request is being handled.
+ Rules can be used to create routing etc.
+
+
+
+
+ Process the incoming request.
+
+ incoming http request
+ outgoing http response
+ true if response should be sent to the browser directly (no other rules or modules will be processed).
+
+ returning true means that no modules will get the request. Returning true is typically being done
+ for redirects.
+
+ If request or response is null.
+
+
+
+ Initializes a new instance of the class.
+
+ Absolute path (no servername)
+ Absolute path (no servername)
+
+ server.Add(new RedirectRule("/", "/user/index"));
+
+
+
+
+ Initializes a new instance of the class.
+
+ Absolute path (no servername)
+ Absolute path (no servername)
+ true if request should be redirected, false if the request uri should be replaced.
+
+ server.Add(new RedirectRule("/", "/user/index"));
+
+
+
+
+ Process the incoming request.
+
+ incoming http request
+ outgoing http response
+ true if response should be sent to the browser directly (no other rules or modules will be processed).
+
+ returning true means that no modules will get the request. Returning true is typically being done
+ for redirects.
+
+
+
+
+ string to match request url with.
+
+ Is compared to request.Uri.AbsolutePath
+
+
+
+ Where to redirect.
+
+
+
+
+ true if we should redirect.
+
+
+ false means that the rule will replace
+ the current request uri with the new one from this class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Expression to match url
+ Expression to generate url
+
+ [a-zA-Z0-9]+)", "/user/${first}"));
+ Result of ie. /employee1 will then be /user/employee1
+ ]]>
+
+
+
+
+ Initializes a new instance of the class.
+
+ Expression to match url
+ Expression to generate url
+ Regular expression options to use, can be null
+
+ [a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase));
+ Result of ie. /employee1 will then be /user/employee1
+ ]]>
+
+
+
+
+ Initializes a new instance of the class.
+
+ Expression to match url
+ Expression to generate url
+ Regular expression options to apply
+ true if request should be redirected, false if the request uri should be replaced.
+
+ [a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None));
+ Result of ie. /employee1 will then be /user/employee1
+ ]]>
+
+
+
+
+ Process the incoming request.
+
+ incoming http request
+ outgoing http response
+ true if response should be sent to the browser directly (no other rules or modules will be processed).
+
+ returning true means that no modules will get the request. Returning true is typically being done
+ for redirects.
+
+ If request or response is null
+
+
+
+ Interface used to load templates from different sources.
+
+
+
+
+ Load a template into a and return it.
+
+ Relative path (and filename) to template.
+ a if file was found; otherwise null.
+
+
+
+ Fetch all files from the resource that matches the specified arguments.
+
+ Where the file should reside.
+ Files to check
+ a list of files if found; or an empty array if no files are found.
+
+
+
+ Check's whether a template should be reloaded or not.
+
+ template information
+ true if template is OK; false if it do not exist or are old.
+
+
+
+ Returns whether or not the loader has an instance of the file requested
+
+ The name of the template/file
+ True if the loader can provide the file
+
+
+
+ Webhelper provides helpers for common tasks in HTML.
+
+
+
+
+ Used to let the website use different javascript libraries.
+ Default is
+
+
+
+
+ Creates a link that invokes through ajax.
+
+ url to fetch
+ link title
+
+ optional options in format "key, value, key, value".
+ Javascript options starts with ':'.
+
+ a link tag
+
+ WebHelper.AjaxRequest("/users/add/", "Add user", "method:", "post", "onclick", "validate('this');");
+
+
+
+
+ Builds a link that updates an element with the fetched ajax content.
+
+ Url to fetch content from
+ link title
+ html element to update with the results of the ajax request.
+ optional options in format "key, value, key, value"
+ A link tag.
+
+
+
+ A link that pop ups a Dialog (overlay div)
+
+ url to contents of dialog
+ link title
+ name/value of html attributes.
+ A "a"-tag that popups a dialog when clicked
+
+ WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
+
+
+
+
+ Create/Open a dialog box using ajax
+
+
+
+
+
+
+
+
+ Close a javascript dialog window/div.
+
+ javascript for closing a dialog.
+
+
+
+
+ Create a <form> tag.
+
+ name of form
+ action to invoke on submit
+ form should be posted as ajax
+ html code
+
+ WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
+
+
+
+
+ Create a link tag.
+
+ url to go to
+ link title (text that is displayed)
+ html attributes, name, value, name, value
+ html code
+
+ WebHelper.Link("/user/show/1", "Show user", "id", "showUser", "onclick", "return confirm('Are you shure?');");
+
+
+
+
+ Build a link
+
+ url to go to.
+ title of link (displayed text)
+ extra html attributes.
+ a complete link
+
+
+
+ Build a link
+
+ url to go to.
+ title of link (displayed text)
+ extra html attributes.
+ a complete link
+ more options
+
+
+
+ Obsolete
+
+ Obsolete
+ Obsolete
+ Obsolete
+ Obsolete
+ Obsolete
+ Obsolete
+
+
+
+ Obsolete
+
+ Obsolete
+ Obsolete
+ Obsolete
+ Obsolete
+ Obsolete
+ Obsolete
+ Obsolete
+
+
+
+ Render errors into a UL with class "errors"
+
+ class used by UL-tag.
+ items to list
+ an unordered html list.
+
+
+
+ Render errors into a UL with class "errors"
+
+ class used by UL-tag.
+ items to list
+ an unordered html list.
+
+
+
+ Render errors into a UL with class "errors"
+
+
+
+
+
+
+ Generates a list with html attributes.
+
+ StringBuilder that the options should be added to.
+ attributes set by user.
+ attributes set by any of the helper classes.
+
+
+
+ Generates a list with html attributes.
+
+ StringBuilder that the options should be added to.
+
+
+
+
+ Purpose of this class is to create a javascript toolkit independent javascript helper.
+
+
+
+
+ Generates a list with JS options.
+
+ StringBuilder that the options should be added to.
+ the javascript options. name, value pairs. each string value should be escaped by YOU!
+ true if we should start with a comma.
+
+
+
+ Removes any javascript parameters from an array of parameters
+
+ The array of parameters to remove javascript params from
+ An array of html parameters
+
+
+
+ javascript action that should be added to the "onsubmit" event in the form tag.
+
+
+ All javascript option names should end with colon.
+
+
+ JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
+
+
+
+
+
+ Requests a url through ajax
+
+ url to fetch
+ optional options in format "key, value, key, value", used in JS request object.
+ a link tag
+ All javascript option names should end with colon.
+
+
+ JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
+
+
+
+
+
+ Ajax requests that updates an element with
+ the fetched content
+
+ Url to fetch content from
+ element to update
+ optional options in format "key, value, key, value", used in JS updater object.
+ A link tag.
+ All javascript option names should end with colon.
+
+
+ JSHelper.AjaxUpdater("/user/show/1", "userInfo", "onsuccess:", "alert('Successful!');");
+
+
+
+
+
+ A link that pop ups a Dialog (overlay div)
+
+ url to contents of dialog
+ link title
+ A "a"-tag that popups a dialog when clicked
+ name/value of html attributes
+
+ WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
+
+
+
+
+ Close a javascript dialog window/div.
+
+ javascript for closing a dialog.
+
+
+
+
+ Creates a new modal dialog window
+
+ url to open in window.
+ window title (may not be supported by all js implementations)
+
+
+
+
+
+ Contains a connection to a browser/client.
+
+
+
+
+ Contains a connection to a browser/client.
+
+
+
+
+ Disconnect from client
+
+ error to report in the delegate.
+
+
+
+ Send a response.
+
+ Either HttpHelper.HTTP10 or HttpHelper.HTTP11
+ http status code
+ reason for the status code.
+ html body contents, can be null or empty.
+ If httpVersion is invalid.
+
+
+
+ Send a response.
+
+ Either HttpHelper.HTTP10 or HttpHelper.HTTP11
+ http status code
+ reason for the status code.
+
+
+
+ Send a response.
+
+
+
+
+
+ send a whole buffer
+
+ buffer to send
+
+
+
+
+ Send data using the stream
+
+ Contains data to send
+ Start position in buffer
+ number of bytes to send
+
+
+
+
+
+ Using SSL or other encryption method.
+
+
+
+
+ Buffersize determines how large the HTTP header can be.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the connection is secured (SSL/TLS)
+ client that connected.
+ delegate handling incoming requests.
+ delegate being called when a client disconnectes
+ Stream used for communication
+ If beginreceive fails
+ delegate used to write log entries
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the connection is secured (SSL/TLS)
+ delegate handling incoming requests.
+ client that connected
+ Stream used for communication
+ If beginreceive fails
+
+
+
+
+
+ Disconnect from client
+
+ error to report in the delegate.
+
+
+
+ This method checks the request if a responde to 100-continue should be sent.
+
+
+ 100 continue is a value in the Expect header.
+ It's used to let the webserver determine if a request can be handled. The client
+ waits for a reply before sending the body.
+
+
+
+
+ Send a response.
+
+ Either HttpHelper.HTTP10 or HttpHelper.HTTP11
+ http status code
+ reason for the status code.
+ html body contents, can be null or empty.
+ If httpVersion is invalid.
+
+
+
+ Send a response.
+
+ Either HttpHelper.HTTP10 or HttpHelper.HTTP11
+ http status code
+ reason for the status code.
+
+
+
+ Send a response.
+
+
+
+
+
+ send a whole buffer
+
+ buffer to send
+
+
+
+
+ Send data using the stream
+
+ Contains data to send
+ Start position in buffer
+ number of bytes to send
+
+
+
+
+
+ Using SSL or other encryption method.
+
+
+
+
+ Client have been disconnected.
+
+ Client that was disconnected.
+ Reason
+
+
+
+
+ Invoked when a client context have received a new HTTP request
+
+ Client that received the request.
+ Request that was received.
+
+
+
+
+ A controller module is a part of the ModelViewController design pattern.
+ It gives you a way to create user friendly URLs.
+
+
+ The controller module uses the flyweight pattern which means that
+ the memory usage will continue to increase until the module have
+ enough objects in memory to serve all concurrent requests. The objects
+ are reused and will not be freed.
+
+
+
+ ControllerModule module = new ControllerModule();
+ module.Add(new UserController());
+ module.Add(new SearchController());
+ myWebsite.Add(module);
+
+
+
+
+
+ A HttpModule can be used to serve urls. The module itself
+ decides if it should serve a url or not. In this way, you can
+ get a very flexible http app since you can let multiple modules
+ serve almost similiar urls.
+
+
+ Throw UnauthorizedException if you are using a AuthenticationModule and want to prompt for username/password.
+
+
+
+
+ Method that process the url
+
+ Information sent by the browser about the request
+ Information that is being sent back to the client.
+ Session used to
+ true if this module handled the request.
+
+
+
+ Set the log writer to use.
+
+ logwriter to use.
+
+
+
+ Log something.
+
+ importance of log message
+ message
+
+
+
+ If true specifies that the module doesn't consume the processing of a request so that subsequent modules
+ can continue processing afterwards. Default is false.
+
+
+
+
+ The controller module uses the prototype design pattern
+ to be able to create new controller objects for requests
+ if the stack is empty.
+
+ A prototype which will be cloned for each request
+
+ If a controller with that name have been added already.
+
+
+
+ Method that process the incoming request.
+
+ Information sent by the browser about the request
+ Information that is being sent back to the client.
+ Session used to
+
+
+
+ Get a prototype
+
+ in lowercase, without "Controller"
+ The controller if found; otherwise null.
+
+
+ //fetches the class UserController
+ RequestController userController = controllerModule["user"];
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ A controller used to handle certain URLs. Will be cloned for each parallel request.
+
+
+
+ Retrieve a previously created controller (or a new one if none exist).
+
+
+
+
+
+ Add a controller
+
+
+
+
+
+ Prototype controller used for cloning.
+
+ The prototype.
+
+
+
+ Will contain helper functions for javascript.
+
+
+
+
+ Requests a url through ajax
+
+ url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.
+ optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.
+ a link tag
+ onclick attribute is used by this method.
+
+
+ // plain text
+ JSHelper.AjaxRequest("'/user/show/1'");
+
+ // ajax request using this.href
+ string link = "<a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/<call user</a>";
+
+
+
+
+
+ Ajax requests that updates an element with
+ the fetched content
+
+ url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.
+ element to update
+ options in format "key, value, key, value". All keys should end with colon.
+ A link tag.
+
+
+ JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
+
+
+
+
+
+ Opens contents in a dialog window.
+
+ url to contents of dialog
+ link title
+ name, value, name, value, all parameter names should end with colon.
+
+
+
+ Close a javascript dialog window/div.
+
+ javascript for closing a dialog.
+
+
+
+
+ Delegate used by to populate select options.
+
+ current object (for instance a User).
+ Text that should be displayed in the value part of a <optiongt;-tag.
+ Text shown in the select list.
+
+ // Class that is going to be used in a SELECT-tag.
+ public class User
+ {
+ private readonly string _realName;
+ private readonly int _id;
+ public User(int id, string realName)
+ {
+ _id = id;
+ _realName = realName;
+ }
+ public string RealName
+ {
+ get { return _realName; }
+ }
+
+ public int Id
+ {
+ get { return _id; }
+ }
+ }
+
+ // Using an inline delegate to generate the select list
+ public void UserInlineDelegate()
+ {
+ List<User> items = new List<User>();
+ items.Add(new User(1, "adam"));
+ items.Add(new User(2, "bertial"));
+ items.Add(new User(3, "david"));
+ string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
+ {
+ User user = (User)o;
+ id = user.Id;
+ value = user.RealName;
+ }, 2, true);
+ }
+
+ // Using an method as delegate to generate the select list.
+ public void UseExternalDelegate()
+ {
+ List<User> items = new List<User>();
+ items.Add(new User(1, "adam"));
+ items.Add(new User(2, "bertial"));
+ items.Add(new User(3, "david"));
+ string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
+ }
+
+ // delegate returning id and title
+ public static void UserOptions(object o, out object id, out object title)
+ {
+ User user = (User)o;
+ id = user.Id;
+ value = user.RealName;
+ } ///
+
+
+
+ Methods marked with BeforeFilter will be invoked before each request.
+
+
+ BeforeFilters should take no arguments and return false
+ if controller method should not be invoked.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ BeforeFilters should take no arguments and return false
+ if controller method should not be invoked.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Specify if the filter should be invoked among the first filters, in between or among the last.
+
+ BeforeFilters should take no arguments and return false
+ if controller method should not be invoked.
+
+
+
+
+ Filters position in before filter queue
+
+
+
+
+ Determins when a before filter is executed.
+
+
+
+
+
+ Filter will be invoked first (unless another filter is added after this one with the First position)
+
+
+
+
+ Invoke after all first filters, and before the last filters.
+
+
+
+
+ Filter will be invoked last (unless another filter is added after this one with the Last position)
+
+
+
+
+ The "basic" authentication scheme is based on the model that the
+ client must authenticate itself with a user-ID and a password for
+ each realm. The realm value should be considered an opaque string
+ which can only be compared for equality with other realms on that
+ server. The server will service the request only if it can validate
+ the user-ID and password for the protection space of the Request-URI.
+ There are no optional authentication parameters.
+
+
+
+
+ Authentication modules are used to implement different
+ kind of http authentication.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Delegate used to provide information used during authentication.
+ Delegate used to determine if authentication is required (may be null).
+
+
+
+ Initializes a new instance of the class.
+
+ Delegate used to provide information used during authentication.
+
+
+
+ Create a response that can be sent in the WWW-Authenticate header.
+
+ Realm that the user should authenticate in
+ Array with optional options.
+ A correct auth request.
+ If realm is empty or null.
+
+
+
+ An authentication response have been received from the web browser.
+ Check if it's correct
+
+ Contents from the Authorization header
+ Realm that should be authenticated
+ GET/POST/PUT/DELETE etc.
+ options to specific implementations
+ Authentication object that is stored for the request. A user class or something like that.
+ if authenticationHeader is invalid
+ If any of the paramters is empty or null.
+
+
+
+ Used to invoke the auth delegate that is used to lookup the username/realm.
+
+ Realm (domain) that user want to authenticate in
+ Username
+ Password used for validation. Some implementations got password in clear text, they are then sent to client.
+ object that will be stored in the request to help you identify the user if authentication was successful.
+ true if authentication was successful
+
+
+
+ Determines if authentication is required.
+
+ Http request from browser
+ true if user should be authenticated.
+ throw ForbiddenException from your delegate if no more attempts are allowed.
+ If no more attempts are allowed
+
+
+
+ name used in http request.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Delegate used to provide information used during authentication.
+ Delegate used to determine if authentication is required (may be null).
+
+
+
+ Initializes a new instance of the class.
+
+ Delegate used to provide information used during authentication.
+
+
+
+ Create a response that can be sent in the WWW-Authenticate header.
+
+ Realm that the user should authenticate in
+ Not used in basic auth
+ A correct auth request.
+
+
+
+ An authentication response have been received from the web browser.
+ Check if it's correct
+
+ Contents from the Authorization header
+ Realm that should be authenticated
+ GET/POST/PUT/DELETE etc.
+ Not used in basic auth
+ Authentication object that is stored for the request. A user class or something like that.
+ if authenticationHeader is invalid
+ If any of the paramters is empty or null.
+
+
+
+ name used in http request.
+
+
+
+
+ The follow node allows users to display code in a haml document
+
+
+ #main Welcome =user.FirstName
+
+
+
+
+ Child nodes may not be the first node on a line
+
+
+
+
+ A node represents a controller code and contents. For example a html tag, an attribute list or something else.
+
+
+
+
+ Add a new node
+
+ parent node.
+
+
+
+ Modifiers are used to modify the first node on the line.
+ Typical modifiers are attribute lists, class names and IDs.
+
+ Modifier node
+
+
+
+ Parse node contents add return a fresh node.
+
+ List containing all node types
+ Node that this is a subnode to. Can be null
+ Line to parse
+ Where to start the parsing. Should be set to where the next node should start parsing.
+ A node corresponding to the bla bla; null if parsing failed.
+
+
+
+
+ determines if this node can handle the line (by checking the first word);
+
+ Controller char (word)
+ true if text belongs to this node type
+ First node on line, used since some nodes cannot exist on their own on a line.
+
+
+
+ Generate HTML code (with ASP tags)
+
+
+
+
+
+ Converts the node to c# code
+
+ true if we are inside the internal stringbuilder
+ c# code
+
+
+
+ Convert the node to c# code
+
+ True if we are inside the internal stringbuilder
+ true if all subnodes fit on one line
+ c# code
+
+
+
+ Generate C# code of the node
+
+ true if we are inside the internal stringbuilder
+ code is small enough to fit on one row.
+ smallEnough is a default value, recalc it
+ c# code
+
+
+
+ Get intendation level for this node.
+
+
+
+
+
+ Returns true if the node is applicable after another node as text instead of being applied as a modifier
+
+
+
+
+ Count our children and our childrens children and so on...
+
+
+
+
+ All child nodes for this node.
+
+
+
+
+ Should only be set for each parent.
+
+
+
+
+ Modifiers are used to modify the first node on the line.
+ Typical modifiers are attribute lists, class names and IDs.
+
+
+
+
+ Last modifier for this node
+
+
+
+
+
+ Number of modifiers for this line.
+
+
+
+
+ Parent node.
+
+
+
+
+ Child nodes may not be the first node on a line
+
+ parent node
+
+
+
+ Creates a DIV node and add's the specified node to it.
+
+ Contains all prototypes for each control char. used to instanciate new nodes.
+ parent node
+ current line information
+ node to add to the DIV node
+ current node
+
+
+
+ Get endposition for this modifier.
+
+ where to start searching
+ contents of the current line
+ char that tells us that this is the end position
+ index on the current line
+
+
+
+ Get endposition for this modifier.
+
+ where to start searching
+ contents of the current line
+ index on the current line
+
+
+
+ This is a plain text node
+
+
+
+
+ Contains C# code that will be rendered into the view.
+
+ Parent node
+
+
+
+ Parse node contents add return a fresh node.
+
+ List containing all node types
+ Node that this is a subnode to. Can be null
+ Line to parse
+ Where to start the parsing. Should be set to where the next node should start parsing.
+ A node corresponding to the bla bla; null if parsing failed.
+
+
+
+
+ determines if this node can handle the line (by checking the first word);
+
+ Controller char (word)
+ true if text belongs to this node type
+ first node on line
+
+
+
+ Generate HTML for this node (with asp tags for code)
+
+
+
+
+
+ = is placed at the end of a tag definition, after class, id, and attribute declarations.
+ It’s just a shortcut for inserting Ruby code into an element. It works the same as = without a tag:
+ it inserts the result of the Ruby code into the template.
+ However, if the result is short enough, it is displayed entirely on one line.
+
+ True if we are inside the internal stringbuilder
+ true if all subnodes fit on one line
+ smallEnough is a default value, recalc it
+ c# code
+
+
+
+ Determines if this is a textnode (containg plain text)
+
+
+
+
+ Contains HTML attributes.
+
+
+
+
+ Create a new node
+
+ parent node
+ collection of attributes
+
+
+
+ create an attribute node
+
+ parent node
+
+
+
+ Get an attribute
+
+ name of the attribute (case sensitive)
+ attribute if found; otherwise null.
+
+
+
+ Parse node contents add return a fresh node.
+
+ List containing all node types
+ Node that this is a subnode to. Can be null
+ Line to parse
+ Where to start the parsing. Should be set to where the next node should start parsing.
+ A node corresponding to the bla bla; null if parsing failed.
+
+
+
+
+ determines if this node can handle the line (by checking the first word);
+
+ Controller char (word)
+ true if text belongs to this node type
+ first node on line
+
+
+
+ Convert node to HTML (with ASP-tags)
+
+ HTML string
+
+
+
+ Convert the node to c# code
+
+ True if we are inside the internal stringbuilder
+ true if all subnodes fit on one line
+ smallEnough is a default value, recalc it
+ c# code
+
+
+
+ html attributes
+
+
+
+
+ A attribute
+
+
+
+
+ value is a simple word or quoted text
+
+
+
+
+ Name of the attribute
+
+
+
+
+ Value, can be a statement, variable or quoted text.
+
+
+
+
+ Arguments being used in a template.
+
+
+
+
+
+
+ Holds the arguments connected to their names for quick access.
+ (since the ArgumentContainer also holds the name for the argument the mapping with strings is somewhat redundant
+ but since the data do 'belong' to the ArgumentContainer this solution was chosen to speed up access)
+
+
+
+
+ Initializes the class without any set arguments.
+
+
+
+
+ Initializes the class with all the arguments of the parameter class.
+
+ Cannot be null
+ If arguments is null
+
+
+
+ Initializes the class with the objects in the parameterlist.
+ Note that each object that is null must be followed by a type.
+
+ Should contain ordered pairs/truples of string, object and type where type is optional if the object isn´t null
+ new TemplateArguments("Dir", "\", "Users", null, typeof(User));
+ If optional type differs from type of object (if object != null) or argument name is duplicate
+ If the order of objects is incorrect
+ If any argument name or type is null
+
+
+
+ A function that merges two argument holders updating and adding values
+
+
+ If arguments is null
+
+
+
+ Clears added arguments
+
+
+
+
+ Adds an argument.
+ (Will throw ArgumentException on duplicates since adding an argument twice points to incorrect code, for ways around
+ this
+
+ Cannot be null
+ Cannot be null
+ If argumentName or argumentObject is null
+ If an argument named argumentName already exists
+
+
+
+ Adds an argument. Allows for argumentObject to be null
+ (Will throw ArgumentException
+
+ Cannot be null
+
+ Cannot be null
+ If argumentName or argumentType is null
+ If an argument named argumentName already exists or argumentObject != null and typeof(argumentObject) differs from argumentType
+
+
+
+ Updates an already added argument
+
+ Cannot be null
+ Cannot be null
+ If no argument named argumentName exists
+ If argumentName or argumentObject is null
+
+
+
+ Updates an already added argument, allows for argumentObject to be null
+
+ Cannot be null
+
+ Cannot be null
+ If argumentName or argumentType is null
+ If an argument named argumentName doesn´t exists or argumentObject != null and typeof(argumentObject) differs from argumentType
+
+
+
+ Clears all added arguments
+
+
+
+
+ Retrieves the arguments
+ (Does so now by copying the values to a new array, could be optimized?)
+
+ An array containing arguments with name, object and type
+
+
+
+ Returns a individual hashcode built upon the specified types the class is holding
+
+ The hashcode is made by joining the typenames of all held arguments and making a string hashcode from them
+
+
+
+
+ Retrieves a concated typename ie DictinaryInt32String
+
+ The type to retrieve the name for
+
+
+
+ Checks whether a specific argument is specified or not.
+
+ Argument name
+ true if argument is specified; otherwise false.
+
+
+
+ Function to make it possible to index out known arguments
+
+ The name of an added argument
+ Null if no ArgumentContainer by name was found
+
+
+
+ A container class grouping mapping name, argument type and the argument object
+
+
+
+
+ Contains the name mapped to the argument
+
+
+
+
+ Contains the type of the argument, this must be valid if _argumentObject is null
+
+
+
+
+ Holds the actual object
+
+
+
+
+ Constructor to initiate an ArgumentContainer, will set the ArgumentType to the value of the argumentObject's type
+
+ Cannot be null
+ Cannot be null
+ If argumentName or argumentObject is null
+
+
+
+ Alternative constructor allowing argumentObject parameter to be null
+
+ Cannot be null
+
+ Cannot be null
+ If argumentName or argumentType is null
+ If argumentObject != null and argumentType != typeof(argumentObject)
+
+
+
+ Sets the object and type of the argument, equal to ArgumentContainer.Object = ...
+
+ Cannot be null
+ If argumentObject is null
+
+
+
+ Sets the argument object and type. Type of the object and argumentType must correspond.
+
+
+ Cannot be null
+ If argumentType is null
+ If typeof(argumentObject) differs from argumentType and object != null
+
+
+
+ Attribute for retrieving the name. The name cannot be set however because an argument is defined by its name
+ changing the name would be changing the arguments meaning, thus an argument needing a name change should rather
+ be recreated
+
+
+
+
+ Returns the type of the argument object. The property cannot be set since the type depends on and must correspond to
+ the type of the object
+
+
+
+
+ Returns or changes the argument object. If the object is to be changed to null the type must be passed aswell,
+ in that case
+
+ If set value is null
+
+
+
+ A partial is a HAML template that is inserted into other HAML templates.
+
+
+
+
+ Contains the page/controller target for the partial.
+ The PartialNode should be written as follows:
+ ex.
+
+ _"requestedpage"{parametername="parametervalue",parametername2=parameter2,parametername3=parameter3:typeof(parameter3type)}
+
+
+
+
+ create a new partial node.
+
+ parent node
+
+
+
+ Determines if this node can handle the line (by checking the first word);
+
+ Controller char (word)
+ True if text belongs to this node type
+ First node on line.
+
+
+
+ Parse node contents add return a fresh node.
+
+ Node that this is a subnode to. Can be null
+ A list with node types
+ Line to parse
+ Where to start the parsing. Will be set to where the next node should start parsing
+ A node corresponding to the bla bla; null if parsing failed.
+
+
+
+
+ Convert the node to c# code
+
+ True if we are inside the internal stringbuilder
+ true if all subnodes fit on one line
+ smallEnough is a default value, recalc it
+ c# code
+
+
+
+ Convert node to HTML (with ASP-tags)
+
+ HTML string
+
+
+
+ Helper function to retrieve the code for the partial request
+
+ A string representing the code for invocating a render of the partial
+
+
+
+ Throw an exception with predefined information
+
+ why the exception was thrown
+
+
+
+ This is a plain text node
+
+
+
+
+ Returns the page/controller target for the node
+
+
+
+
+ Loads templates from embedded resources.
+
+
+
+
+ Loads templates from a namespace in the given assembly to an uri
+
+ The uri to map the resources to
+ The assembly in which the resources reside
+ The namespace from which to load the resources
+
+ resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
+
+ will make ie the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
+
+
+
+
+ Load a template into a and return it.
+
+ Relative path (and filename) to template.
+
+ a if file was found; otherwise null.
+
+
+
+
+ Fetch all files from the resource that matches the specified arguments.
+
+ Where the file should reside.
+ Files to check
+
+ a list of files if found; or an empty array if no files are found.
+
+
+
+
+ Always returns true since a resource won't be updated during execution
+
+
+
+
+
+
+ Returns whether or not the loader has an instance of the file requested
+
+ The name of the template/file
+ True if the loader can provide the file
+
+
+
+ Priority for log entries
+
+
+
+
+
+ Very detailed logs to be able to follow the flow of the program.
+
+
+
+
+ Logs to help debug errors in the application
+
+
+
+
+ Information to be able to keep track of state changes etc.
+
+
+
+
+ Something did not go as we expected, but it's no problem.
+
+
+
+
+ Something that should not fail failed, but we can still keep
+ on going.
+
+
+
+
+ Something failed, and we cannot handle it properly.
+
+
+
+
+ Interface used to write to log files.
+
+
+
+
+ Write an entry to the log file.
+
+ object that is writing to the log
+ importance of the log message
+ the message
+
+
+
+ This class writes to the console. It colors the output depending on the logprio and includes a 3-level stacktrace (in debug mode)
+
+
+
+
+
+ The actual instance of this class.
+
+
+
+
+ Logwriters the specified source.
+
+ object that wrote the logentry.
+ Importance of the log message
+ The message.
+
+
+
+ Get color for the specified logprio
+
+ prio for the log entry
+ A for the prio
+
+
+
+ Default log writer, writes everything to null (nowhere).
+
+
+
+
+
+ The logging instance.
+
+
+
+
+ Writes everything to null
+
+ object that wrote the logentry.
+ Importance of the log message
+ The message.
+
+
+
+ Contains some kind of input from the browser/client.
+ can be QueryString, form data or any other request body content.
+
+
+
+
+ Base class for request data containers
+
+
+
+
+ Adds a parameter mapped to the presented name
+
+ The name to map the parameter to
+ The parameter value
+
+
+
+ Returns true if the container contains the requested parameter
+
+ Parameter id
+ True if parameter exists
+
+
+
+ Returns a request parameter
+
+ The name associated with the parameter
+
+
+
+ Representation of a non-initialized class instance
+
+
+ Variable telling the class that it is non-initialized
+
+
+
+ Initializes a new instance of the class.
+
+ form name.
+
+
+
+ Initializes a new instance of the class.
+
+ form name.
+ if set to true all changes will be ignored.
+ this constructor should only be used by Empty
+
+
+ Creates a deep copy of the HttpInput class
+ The object to copy
+ The function makes a deep copy of quite a lot which can be slow
+
+
+
+ Add a new element. Form array elements are parsed
+ and added in a correct hierachy.
+
+ Name is converted to lower case.
+
+
+
+
+ Returns true if the class contains a HttpInput value with the corresponding name
+
+ The field/querystring name
+ True if the value exists
+
+
+
+ Parses an item and returns it.
+ This function is primarly used to parse array items as in user[name].
+
+
+
+
+
+
+ Outputs the instance representing all its values joined together
+
+
+
+ Returns all items as an unescaped query string.
+
+
+
+
+ Extracts one parameter from an array
+
+ Containing the string array
+ All but the first value
+
+ string test1 = ExtractOne("system[user][extension][id]");
+ string test2 = ExtractOne(test1);
+ string test3 = ExtractOne(test2);
+ // test1 = user[extension][id]
+ // test2 = extension[id]
+ // test3 = id
+
+
+
+ Resets all data contained by class
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+
+ A that can be used to iterate through the collection.
+
+ 1
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+
+ An object that can be used to iterate through the collection.
+
+ 2
+
+
+
+ Form name as lower case
+
+
+
+
+ Get a form item.
+
+
+ Returns HttpInputItem.Empty if item was not found.
+
+
+
+ Returns item either from a form or a query string (checks them in that order)
+
+
+
+ Representation of a non-initialized HttpParam
+
+
+ Initialises the class to hold a value either from a post request or a querystring request
+
+
+
+ The add method is not availible for HttpParam
+ since HttpParam checks both Request.Form and Request.QueryString
+
+ name identifying the value
+ value to add
+
+
+
+
+ Checks whether the form or querystring has the specified value
+
+ Name, case sensitive
+ true if found; otherwise false.
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+
+ A that can be used to iterate through the collection.
+
+ 1
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+
+ An object that can be used to iterate through the collection.
+
+ 2
+
+
+
+ Fetch an item from the form or querystring (in that order).
+
+
+ Item if found; otherwise HttpInputItem.EmptyLanguageNode
+
+
+
+ Container class for posted files
+
+
+
+
+ Creates a container for a posted file
+
+ The identifier of the post field
+ The file path
+ The content type of the file
+ The name of the file uploaded
+ If any parameter is null or empty
+
+
+
+ Creates a container for a posted file
+
+ If any parameter is null or empty
+
+
+ Destructor disposing the file
+
+
+
+ Deletes the temporary file
+
+ True if manual dispose
+
+
+
+ Disposing interface, cleans up managed resources (the temporary file) and suppresses finalization
+
+
+
+
+ The name/id of the file
+
+
+
+
+ The full file path
+
+
+
+
+ The name of the uploaded file
+
+
+
+
+ The type of file
+
+
+
+
+ The object form class takes an object and creates form items for it.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ form name *and* id.
+ action to do when form is posted.
+
+
+
+
+ Initializes a new instance of the class.
+
+ form name *and* id.
+ action to do when form is posted.
+ object to get values from
+
+
+
+ Initializes a new instance of the class.
+
+ form action.
+ object to get values from.
+
+
+
+ write out the FORM-tag.
+
+ generated html code
+
+
+
+ Writeout the form tag
+
+ form should be posted through ajax.
+ generated html code
+
+
+
+ Generates a text box.
+
+
+
+ generated html code
+
+
+
+ password box
+
+
+
+ generated html code
+
+
+
+ Hiddens the specified property name.
+
+ Name of the property.
+ The options.
+ generated html code
+
+
+
+ Labels the specified property name.
+
+ property in object.
+ caption
+ generated html code
+
+
+
+ Generate a checkbox
+
+ property in object
+ checkbox value
+ additional html attributes.
+ generated html code
+
+
+
+ Write a html select tag
+
+ object property.
+ id column
+ The title column.
+ The options.
+
+
+
+
+ Selects the specified property name.
+
+ Name of the property.
+ The items.
+ The id column.
+ The title column.
+ The options.
+
+
+
+
+ Write a submit tag.
+
+ button caption
+ html submit tag
+
+
+
+ html end form tag
+
+ html
+
+
+
+ This provider is used to let us implement any type of form decoding we want without
+ having to rewrite anything else in the server.
+
+
+
+
+
+
+ Should contain boundary and type, as in: multipart/form-data; boundary=---------------------------230051238959
+ Stream containg form data.
+ Encoding used when decoding the stream
+ HttpInput.EmptyLanguageNode if no parser was found. Must always return something (HttpInput.Empty instead of null)
+ If stream is null or not readable.
+ If stream contents cannot be decoded properly.
+
+
+
+ Add a decoder.
+
+
+
+
+
+
+ Number of added decoders.
+
+
+
+
+ Use with care.
+
+
+
+
+ Decoder used for unknown content types.
+
+
+
+
+ Contains an (html) attribute list.
+
+
+
+
+ Rules are used during preparse
+
+
+
+
+ Determines if this node spans over multiple lines.
+
+ contains line information (and text)
+ true if rule have previously inited a multiline.
+ true if this line continues onto the next.///
+
+
+
+ Determines if this node spans over multiple lines.
+
+ contains line information (and text)
+ true if the previous line was continued.
+ true if this line continues onto the next.
+
+
+
+ A text only node.
+
+
+
+
+
+
+ parent node
+ plain text
+
+
+
+ Parse node contents add return a fresh node.
+
+ List containing all node types
+ Node that this is a subnode to. Can be null
+ Line to parse
+ Where to start the parsing. Should be set to where the next node should start parsing.
+ A node corresponding to the bla bla; null if parsing failed.
+
+
+
+
+ determines if this node can handle the line (by checking the first word);
+
+ Controller char (word)
+ true if text belongs to this node type
+ true if this is the first node on the line.
+
+
+
+ Generate HTML for this node.
+
+
+
+
+
+ Convert the node to c# code
+
+ True if we are inside the internal stringbuilder
+ true if all subnodes fit on one line
+ todo: add description
+ c# code
+
+
+
+ The text.
+
+
+
+
+ Is this a text node (containing plain text)?
+
+
+
+
+ Serves files that are stored in embedded resources.
+
+
+
+
+ Initializes a new instance of the class.
+ Runs to make sure the basic mime types are available, they can be cleared later
+ through the use of if desired.
+
+
+
+
+ Mimtypes that this class can handle per default
+
+
+
+
+ Loads resources from a namespace in the given assembly to an uri
+
+ The uri to map the resources to
+ The assembly in which the resources reside
+ The namespace from which to load the resources
+
+ resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
+
+ will make ie the resource MyLib.Models.User.Views.stylesheet.css accessible via /user/stylesheet.css
+
+
+
+
+ Returns true if the module can handle the request
+
+
+
+
+ Method that process the url
+
+ Information sent by the browser about the request
+ Information that is being sent back to the client.
+ Session used to
+ true if this module handled the request.
+
+
+
+ List with all mime-type that are allowed.
+
+ All other mime types will result in a Forbidden http status code.
+
+
+
+ This decoder converts XML documents to form items.
+ Each element becomes a subitem in the form, and each attribute becomes an item.
+
+
+ // xml: somethingdata
+ // result:
+ // form["hello"].Value = "something"
+ // form["hello"]["id"].Value = 1
+ // form["hello"]["world]["id"].Value = 1
+ // form["hello"]["world"].Value = "data"
+
+
+ The original xml document is stored in form["__xml__"].Value.
+
+
+
+
+ Interface for form content decoders.
+
+
+
+
+
+
+ Stream containing the content
+ Content type (with any additional info like boundry). Content type is always supplied in lower case
+ Stream enconding
+ A http form, or null if content could not be parsed.
+ If contents in the stream is not valid input data.
+
+
+
+ Checks if the decoder can handle the mime type
+
+ Content type (with any additional info like boundry). Content type is always supplied in lower case.
+ True if the decoder can parse the specified content type
+
+
+
+
+
+ Stream containing the content
+ Content type (with any additional info like boundry). Content type is always supplied in lower case
+ Stream encoding
+ Note: contentType and encoding are not used?
+ A http form, or null if content could not be parsed.
+
+
+
+
+ Recursive function that will go through an xml element and store it's content
+ to the form item.
+
+ (parent) Item in form that content should be added to.
+ Node that should be parsed.
+
+
+
+ Checks if the decoder can handle the mime type
+
+ Content type (with any additional info like boundry). Content type is always supplied in lower case.
+ True if the decoder can parse the specified content type
+
+
+
+ This attribute can be used to map a controller to a specific url without using
+ the class name.
+
+
+
+
+ Maps a controller to a url without using the controller name.
+
+
+ Per default the class name is used to determine which url to handle.
+ For instance, "class UserController" or "class User" tells the framework that
+ the urls that starts with "/user" should be handled by that controller.
+ This attribute can be used to circumvent that.
+
+ The name.
+
+
+
+ The name that the controller should use
+
+
+
+
+ A session store is used to store and load sessions on a media.
+ The default implementation () saves/retrieves sessions from memory.
+
+
+
+
+ Creates a new http session with a generated id.
+
+ A object
+
+
+
+ Creates a new http session with a specific id
+
+ Id used to identify the new cookie..
+ A object.
+
+ Id should be generated by the store implementation if it's null or .
+
+
+
+
+ Load an existing session.
+
+ Session id (usually retrieved from a client side cookie).
+ A session if found; otherwise null.
+
+
+
+ Save an updated session to the store.
+
+ Session id (usually retrieved from a client side cookie).
+ If Id property have not been specified.
+
+
+
+ We use the flyweight pattern which reuses small objects
+ instead of creating new each time.
+
+ Unused session that should be reused next time Create is called.
+
+
+
+ Remove expired sessions
+
+
+
+
+ Remove a session
+
+ id of the session.
+
+
+
+ Load a session from the store
+
+
+ null if session is not found.
+
+
+
+ Number of minutes before a session expires.
+
+ Default time is 20 minutes.
+
+
+
+ HTTP Listener waits for HTTP connections and provide us with s using the
+ delegate.
+
+
+
+
+ Listen for regular HTTP connections
+
+ IP Address to accept connections on
+ TCP Port to listen on, default HTTP port is 80.
+
+
+
+ Launch HttpListener in SSL mode
+
+ IP Address to accept connections on
+ TCP Port to listen on, default HTTPS port is 443
+ Certificate to use
+
+
+
+ Launch HttpListener in SSL mode
+
+ IP Address to accept connections on
+ TCP Port to listen on, default HTTPS port is 443
+ Certificate to use
+ which HTTPS protocol to use, default is TLS.
+
+
+
+ Start listen for new connections
+
+ Number of connections that can stand in a queue to be accepted.
+
+
+
+ Stop the listener
+
+
+
+
+
+ A client have been accepted, but not handled, by the listener.
+
+
+
+
+ Invoked when a client disconnects
+
+
+
+
+ Gives you a change to receive log entries for all internals of the HTTP library.
+
+
+ You may not switch log writer after starting the listener.
+
+
+
+
+ This handler will be invoked each time a new connection is accepted.
+
+
+
+
+ True if we should turn on trace logs.
+
+
+
+
+ Let's to receive unhandled exceptions from the threads.
+
+
+ Exceptions will be thrown during debug mode if this event is not used,
+ exceptions will be printed to console and suppressed during release mode.
+
+
+
+
+ PrototypeJS implementation of the javascript functions.
+
+
+
+
+ Requests a url through ajax
+
+ url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.
+ optional options in format "key, value, key, value", used in JS request object. All keys should end with colon.
+ a link tag
+ onclick attribute is used by this method.
+
+
+ // plain text
+ JSHelper.AjaxRequest("'/user/show/1'");
+
+ // ajax request using this.href
+ string link = "<a href=\"/user/call/1\" onclick=\"" + JSHelper.AjaxRequest("this.href") + "/<call user</a>";
+
+
+
+
+
+ Determins if a list of strings contains a specific value
+
+ options to check in
+ value to find
+ true if value was found
+ case insensitive
+
+
+
+ Ajax requests that updates an element with
+ the fetched content
+
+ url to fetch. Url is NOT enclosed in quotes by the implementation. You need to do that yourself.
+ element to update
+ options in format "key, value, key, value". All keys should end with colon.
+ A link tag.
+
+
+ JSHelper.AjaxUpdater("'/user/show/1'", "user", "onsuccess:", "alert('hello');", "asynchronous:", "true");
+
+
+
+
+
+ A link that pop ups a Dialog (overlay div)
+
+ url to contents of dialog
+ link title
+ name, value, name, value
+
+ A "a"-tag that popups a dialog when clicked
+
+ Requires Control.Modal found here: http://livepipe.net/projects/control_modal/
+ And the following javascript (load it in application.js):
+
+ Event.observe(window, 'load',
+ function() {
+ document.getElementsByClassName('modal').each(function(link){ new Control.Modal(link); });
+ }
+ );
+
+
+
+ WebHelper.DialogLink("/user/show/1", "show user", "onmouseover", "alert('booh!');");
+
+
+
+
+ create a modal dialog (usually using DIVs)
+
+ url to fetch
+ dialog title
+ javascript/html attributes. javascript options ends with colon ':'.
+
+
+
+
+ Close a javascript dialog window/div.
+
+ javascript for closing a dialog.
+
+
+
+
+ javascript action that should be added to the "onsubmit" event in the form tag.
+
+ remember to encapsulate strings in ''
+
+ All javascript option names should end with colon.
+
+
+ JSHelper.AjaxRequest("/user/show/1", "onsuccess:", "$('userInfo').update(result);");
+
+
+
+
+
+ The requested resource was not found in the web server.
+
+
+
+
+ All HTTP based exceptions will derive this class.
+
+
+
+
+ Create a new HttpException
+
+ http status code (sent in the response)
+ error description
+
+
+
+ Create a new HttpException
+
+ http status code (sent in the response)
+ error description
+ inner exception
+
+
+
+ status code to use in the response.
+
+
+
+
+ Create a new exception
+
+ message describing the error
+ inner exception
+
+
+
+ Create a new exception
+
+ message describing the error
+
+
+
+ A controller in the Model-View-Controller pattern.
+ Derive this class and add method with one of the following signatures:
+ "public string MethodName()" or "public void MyMethod()".
+
+ The first should return a string with the response, the latter
+ should use SendHeader and SendBody methods to handle the response.
+
+
+ Last segment of the path is always broken into the properties Id and RequestedType
+ Alhtough note that the RequestedType can also be empty if no file extension have
+ been specified. A typical use of file extensions in controllers is to specify which type of
+ format to return.
+
+
+ public class MyController : RequestController
+ {
+ public string Hello()
+ {
+ if (RequestedType == "xml")
+ return "<hello>World<hello>";
+ else
+ return "Hello " + Request.QueryString["user"].Value + ", welcome to my world";
+ }
+
+ public void File()
+ {
+ Response.Headers.ContentType = "text/xml";
+ Response.SendHeader();
+ }
+ }
+
+
+
+
+
+
+
+ create a new request controller
+
+ prototype to copy information from
+
+
+
+ create a new controller
+
+
+
+
+ Method that determines if an url should be handled or not by the module
+
+ Url requested by the client.
+ true if module should handle the url.
+
+
+
+ Determines which method to use.
+
+ Requested resource
+
+
+
+ Call all before filters
+
+ true if a before filter wants to abort the processing.
+
+
+
+ Override this method to be able to process result
+ returned by controller method.
+
+
+
+
+ Override this method if you want to be able to
+ handle unhanded exceptions
+
+ thrown exception
+ Don't "eat" exceptions derived from HttpException since
+ they are handled by the framework,unless your are sure of what you are
+ doing..
+
+
+
+ This method goes through all methods in the controller and
+ add's them to a dictionary. They are later used to invoke
+ the correct method depending on the url
+
+
+
+
+ Method that process the url
+
+ Uses Uri and QueryString to determine method.
+ Relays response object to invoked method.
+ Relays session object to invoked method.
+
+
+
+ Will assign all variables that are unique for each session
+
+
+
+
+
+
+
+ Make a clone of this controller
+
+ a new controller with the same base information as this one.
+
+
+
+ object that was attached during http authentication process.
+
+
+ You can also assign this tag yourself if you are using regular
+ http page login.
+
+
+
+
+
+ Name of this controller (class name without the "Controller" part)
+
+
+
+
+ Specifies the method to use if no action have been specified.
+
+ If specified method do not exist.
+
+
+
+ Id is the third part of the uri path.
+
+
+ Is extracted as in: /controllername/methodname/id/
+
+ string.Empty if not specified.
+
+
+
+
+
+ Method currently being invoked.
+ Always in lower case.
+
+
+
+
+ Request information (like Url, form, querystring etc)
+
+
+
+
+ Extension if a filename was specified.
+
+
+
+
+ Response information (that is going to be sent back to the browser/client)
+
+
+
+
+ Session information, is stored between requests as long as the session cookie is valid.
+
+
+
+
+ Marks methods to let framework know that the method is protected
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+ Level is a value defined by you. It should be used to determine the users
+ that can access the method tagged with the AuthRequired attribute.
+
+
+ = level;
+ }
+ }
+ ]]>
+
+
+
+
+ Level is a value defined by you. It should be used to determine the users
+ that can access the method tagged with the AuthRequired attribute.
+
+
+
+
+ A session stored in memory.
+
+
+
+
+ Interface for sessions
+
+
+
+
+ Remove everything from the session
+
+
+
+
+ Remove everything from the session
+
+ True if the session is cleared due to expiration
+
+
+
+ Session id
+
+
+
+
+ Should
+
+ Name of the session variable
+ null if it's not set
+ If the object cant be serialized.
+
+
+
+ When the session was last accessed.
+ This property is touched by the http server each time the
+ session is requested.
+
+
+
+
+ Number of session variables.
+
+
+
+
+ Event triggered upon clearing the session
+
+
+
+
+
+
+ A unique id used by the sessions store to identify the session
+
+
+
+ Id
+
+
+
+
+
+ Remove everything from the session
+
+
+
+
+ Clears the specified expire.
+
+ True if the session is cleared due to expiration
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+ 2
+
+
+
+ Session id
+
+
+
+
+ Should
+
+ Name of the session variable
+ null if it's not set
+
+
+
+ when the session was last accessed.
+
+
+ Used to determine when the session should be removed.
+
+
+
+
+ Number of values in the session
+
+
+
+
+ Flag to indicate that the session have been changed
+ and should be saved into the session store.
+
+
+
+
+ Event triggered upon clearing the session
+
+
+
+
+ IRule that says that something :)
+
+
+
+
+ Determines if this node spans over multiple lines.
+
+ contains line information (and text)
+ true if the previous line was continued.
+ true if this line continues onto the next.
+
+
+
+ Represents a HTML tag.
+
+
+
+
+ Create a new HTML tag node.
+
+ parent node
+
+
+
+ determines if this node can handle the line (by checking the first word);
+
+ Controller char (word)
+ true if text belongs to this node type
+ first node on line.
+
+
+
+ Parse node contents add return a fresh node.
+
+ Node that this is a subnode to. Can be null
+ A list with node types
+ Line to parse
+ Where to start the parsing. Will be set to where the next node should start parsing
+ A node corresponding to the bla bla; null if parsing failed.
+
+
+
+
+ Convert the node to c# code
+
+ True if we are inside the internal stringbuilder
+ true if all subnodes fit on one line
+ smallEnough is a default value, recalc it
+ c# code
+
+
+
+ Convert node to HTML (with ASP-tags)
+
+ HTML string
+
+
+
+ This is a plain text node
+
+
+
+
+ tag name
+
+
+
+
+ Thrown when a template cannot be compiled.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Template that failed compilation.
+ Exception thrown by the compiler.
+
+
+
+ Creates and returns a string representation of the current exception.
+
+
+ A string representation of the current exception.
+
+
+
+
+
+
+
+ Gets a message that describes the current exception.
+
+
+
+ The error message that explains the reason for the exception, or an empty string("").
+
+
+
+
+ Contains all HTTP Methods (according to the HTTP 1.1 specification)
+
+ See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
+
+
+
+
+
+ The DELETE method requests that the origin server delete the resource identified by the Request-URI.
+
+
+
+ This method MAY be overridden by human intervention (or other means) on the origin server.
+ The client cannot be guaranteed that the operation has been carried out, even if the status code
+ returned from the origin server indicates that the action has been completed successfully.
+
+
+ However, the server SHOULD NOT indicate success unless, at the time the response is given,
+ it intends to delete the resource or move it to an inaccessible location.
+
+
+ A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
+ 202 (Accepted) if the action has not yet been enacted,
+ or 204 (No Content) if the action has been enacted but the response does not include an entity.
+
+
+ If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
+ those entries SHOULD be treated as stale. Responses to this method are not cacheable.
+
+
+
+
+
+ The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
+
+
+
+ If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
+ entity in the response and not the source text of the process, unless that text happens to be the output of the process.
+
+
+ The semantics of the GET method change to a "conditional GET" if the request message includes an
+ If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
+ A conditional GET method requests that the entity be transferred only under the circumstances described
+ by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
+ usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
+ data already held by the client.
+
+
+
+
+
+ The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
+
+
+ The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
+ information sent in response to a GET request. This method can be used for obtaining metainformation about
+ the entity implied by the request without transferring the entity-body itself.
+
+ This method is often used for testing hypertext links for validity, accessibility, and recent modification.
+
+
+
+
+ The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI.
+
+
+ This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.
+
+
+
+
+ The POST method is used to request that the origin server accept the entity enclosed
+ in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
+
+
+ POST is designed to allow a uniform method to cover the following functions:
+
+
+ Annotation of existing resources;
+
+ Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
+
+ Providing a block of data, such as the result of submitting a form, to a data-handling process;
+
+ Extending a database through an append operation.
+
+
+
+ If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
+ contain an entity which describes the status of the request and refers to the new resource, and a
+ Location header (see section 14.30).
+
+
+ The action performed by the POST method might not result in a resource that can be identified by a URI.
+ In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
+ whether or not the response includes an entity that describes the result.
+
+ Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
+ or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
+ to retrieve a cacheable resource.
+
+
+
+
+
+ The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
+
+
+
+
+ If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
+ modified version of the one residing on the origin server.
+
+ If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
+ resource by the requesting user agent, the origin server can create the resource with that URI.
+
+ If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
+
+ If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
+ indicate successful completion of the request.
+
+ If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
+ given that reflects the nature of the problem.
+
+
+
+ The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
+ understand or implement and MUST return a 501 (Not Implemented) response in such cases.
+
+
+
+
+
+ The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
+
+
+
+
+ Contains all HTTP Methods (according to the HTTP 1.1 specification)
+
+ See: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
+
+
+
+
+
+ The DELETE method requests that the origin server delete the resource identified by the Request-URI.
+
+
+
+ This method MAY be overridden by human intervention (or other means) on the origin server.
+ The client cannot be guaranteed that the operation has been carried out, even if the status code
+ returned from the origin server indicates that the action has been completed successfully.
+
+
+ However, the server SHOULD NOT indicate success unless, at the time the response is given,
+ it intends to delete the resource or move it to an inaccessible location.
+
+
+ A successful response SHOULD be 200 (OK) if the response includes an entity describing the status,
+ 202 (Accepted) if the action has not yet been enacted,
+ or 204 (No Content) if the action has been enacted but the response does not include an entity.
+
+
+ If the request passes through a cache and the Request-URI identifies one or more currently cached entities,
+ those entries SHOULD be treated as stale. Responses to this method are not cacheable.
+
+
+
+
+
+ The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.
+
+
+
+ If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the
+ entity in the response and not the source text of the process, unless that text happens to be the output of the process.
+
+
+ The semantics of the GET method change to a "conditional GET" if the request message includes an
+ If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match, or If-Range header field.
+ A conditional GET method requests that the entity be transferred only under the circumstances described
+ by the conditional header field(s). The conditional GET method is intended to reduce unnecessary network
+ usage by allowing cached entities to be refreshed without requiring multiple requests or transferring
+ data already held by the client.
+
+
+
+
+
+ The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.
+
+
+ The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the
+ information sent in response to a GET request. This method can be used for obtaining metainformation about
+ the entity implied by the request without transferring the entity-body itself.
+
+ This method is often used for testing hypertext links for validity, accessibility, and recent modification.
+
+
+
+
+ The OPTIONS method represents a request for information about the communication options available on the request/response chain identified by the Request-URI.
+
+
+ This method allows the client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action or initiating a resource retrieval.
+
+
+
+
+ The POST method is used to request that the origin server accept the entity enclosed
+ in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line.
+
+
+ POST is designed to allow a uniform method to cover the following functions:
+
+
+ Annotation of existing resources;
+
+ Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles;
+
+ Providing a block of data, such as the result of submitting a form, to a data-handling process;
+
+ Extending a database through an append operation.
+
+
+
+ If a resource has been created on the origin server, the response SHOULD be 201 (Created) and
+ contain an entity which describes the status of the request and refers to the new resource, and a
+ Location header (see section 14.30).
+
+
+ The action performed by the POST method might not result in a resource that can be identified by a URI.
+ In this case, either 200 (OK) or 204 (No Content) is the appropriate response status, depending on
+ whether or not the response includes an entity that describes the result.
+
+ Responses to this method are not cacheable, unless the response includes appropriate Cache-Control
+ or Expires header fields. However, the 303 (See Other) response can be used to direct the user agent
+ to retrieve a cacheable resource.
+
+
+
+
+
+ The PUT method requests that the enclosed entity be stored under the supplied Request-URI.
+
+
+
+
+ If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a
+ modified version of the one residing on the origin server.
+
+ If the Request-URI does not point to an existing resource, and that URI is capable of being defined as a new
+ resource by the requesting user agent, the origin server can create the resource with that URI.
+
+ If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response.
+
+ If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent to
+ indicate successful completion of the request.
+
+ If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be
+ given that reflects the nature of the problem.
+
+
+
+ The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers that it does not
+ understand or implement and MUST return a 501 (Not Implemented) response in such cases.
+
+
+
+
+
+ The TRACE method is used to invoke a remote, application-layer loop- back of the request message.
+
+
+
+
+ Contains serverside http request information.
+
+
+
+
+ Decode body into a form.
+
+ A list with form decoders.
+ If body contents is not valid for the chosen decoder.
+ If body is still being transferred.
+
+
+
+ Sets the cookies.
+
+ The cookies.
+
+
+
+ Called during parsing of a IHttpRequest.
+
+ Name of the header, should not be url encoded
+ Value of the header, should not be url encoded
+ If a header is incorrect.
+
+
+
+ Add bytes to the body
+
+ buffer to read bytes from
+ where to start read
+ number of bytes to read
+ Number of bytes actually read (same as length unless we got all body bytes).
+
+ If body is not writable
+
+
+
+ Clear everything in the request
+
+
+
+
+ Have all body content bytes been received?
+
+
+
+
+ Kind of types accepted by the client.
+
+
+
+
+ Submitted body contents
+
+
+
+
+ Kind of connection used for the session.
+
+
+
+
+ Number of bytes in the body
+
+
+
+
+ Headers sent by the client. All names are in lower case.
+
+
+
+
+ Version of http.
+ Probably HttpHelper.HTTP10 or HttpHelper.HTTP11
+
+
+
+
+
+ Requested method, always upper case.
+
+
+
+
+
+ Variables sent in the query string
+
+
+
+
+ Requested URI (url)
+
+
+
+
+ Uri absolute path splitted into parts.
+
+
+ // uri is: http://gauffin.com/code/tiny/
+ Console.WriteLine(request.UriParts[0]); // result: code
+ Console.WriteLine(request.UriParts[1]); // result: tiny
+
+
+ If you're using controllers than the first part is controller name,
+ the second part is method name and the third part is Id property.
+
+
+
+
+
+ Check's both QueryString and Form after the parameter.
+
+
+
+
+ Form parameters.
+
+
+
+ Returns true if the request was made by Ajax (Asyncronous Javascript)
+
+
+ Returns set cookies for the request
+
+
+
+ Parses a HTTP request directly from a stream
+
+
+
+
+ Create a new request parser
+
+ delegate called when a complete request have been generated
+ delegate receiving log entries.
+
+
+
+ Add a number of bytes to the body
+
+
+
+
+
+
+
+
+ Remove all state information for the request.
+
+
+
+
+ Parse request line
+
+
+ If line is incorrect
+ Expects the following format: "Method SP Request-URI SP HTTP-Version CRLF"
+
+
+
+ We've parsed a new header.
+
+ Name in lower case
+ Value, unmodified.
+ If content length cannot be parsed.
+
+
+
+ Parse a message
+
+
+ where in buffer that parsing should start
+ number of bytes to parse
+ Unparsed bytes left in buffer.
+
+
+
+ Current state in parser.
+
+
+
+
+ Invoked when a request have been completed.
+
+
+
+
+
+ Current state in the parsing.
+
+
+
+
+ Should parse the request line
+
+
+
+
+ Searching for a complete header name
+
+
+
+
+ Searching for colon after header name (ignoring white spaces)
+
+
+
+
+ Searching for start of header value (ignoring white spaces)
+
+
+
+
+ Searching for a complete header value (can span over multiple lines, as long as they are prefixed with one/more whitespaces)
+
+
+
+
+ Adding bytes to body
+
+
+
+
+ Contains serverside http request information.
+
+
+
+
+ Chars used to split an url path into multiple parts.
+
+
+
+
+ Assign a form.
+
+
+
+
+
+ Creates a new object that is a copy of the current instance.
+
+
+
+ A new object that is a copy of this instance.
+
+ 2
+
+
+
+ Decode body into a form.
+
+ A list with form decoders.
+ If body contents is not valid for the chosen decoder.
+ If body is still being transferred.
+
+
+
+ Cookies
+
+ the cookies
+
+
+
+ Called during parsing of a IHttpRequest.
+
+ Name of the header, should not be url encoded
+ Value of the header, should not be url encoded
+ If a header is incorrect.
+
+
+
+ Add bytes to the body
+
+ buffer to read bytes from
+ where to start read
+ number of bytes to read
+ Number of bytes actually read (same as length unless we got all body bytes).
+
+ If body is not writable
+
+
+
+ Clear everything in the request
+
+
+
+
+ Have all body content bytes been received?
+
+
+
+
+ Kind of types accepted by the client.
+
+
+
+
+ Submitted body contents
+
+
+
+
+ Kind of connection used for the session.
+
+
+
+
+ Number of bytes in the body
+
+
+
+
+ Headers sent by the client. All names are in lower case.
+
+
+
+
+ Version of http.
+ Probably HttpHelper.HTTP10 or HttpHelper.HTTP11
+
+
+
+
+
+ Requested method, always upper case.
+
+
+
+
+
+ Variables sent in the query string
+
+
+
+
+ Requested URI (url)
+
+
+
+
+
+ Uri absolute path splitted into parts.
+
+
+ // uri is: http://gauffin.com/code/tiny/
+ Console.WriteLine(request.UriParts[0]); // result: code
+ Console.WriteLine(request.UriParts[1]); // result: tiny
+
+
+ If you're using controllers than the first part is controller name,
+ the second part is method name and the third part is Id property.
+
+
+
+
+
+ Path and query (will be merged with the host header) and put in Uri
+
+
+
+
+
+ Check's both QueryString and Form after the parameter.
+
+
+
+
+ Form parameters.
+
+
+
+ Returns true if the request was made by Ajax (Asyncronous Javascript)
+
+
+ Returns set cookies for the request
+
+
+
+ Current request is sent over secure protocol
+
+
+
+
+ The website module let's you handle multiple websites in the same server.
+ It uses the "Host" header to check which site you want.
+
+ It's recommended that you do not
+ add any other modules to HttpServer if you are using the website module. Instead,
+ add all wanted modules to each website.
+
+
+
+
+
+ domain name that should be handled.
+
+
+
+
+ Method that process the url
+
+ Information sent by the browser about the request
+ Information that is being sent back to the client.
+ Session used to
+
+
+
+ Name of site.
+
+
+
+
+ Helpers making it easier to work with forms.
+
+
+
+
+
+ Used to let the website use different javascript libraries.
+ Default is
+
+
+
+
+ Create a <form> tag.
+
+ name of form
+ action to invoke on submit
+ form should be posted as ajax
+ html code
+
+
+ // without options
+ WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax);
+
+ // with options
+ WebHelper.FormStart("frmLogin", "/user/login", Request.IsAjax, "style", "display:inline", "class", "greenForm");
+
+
+ html attributes or javscript options.
+ Method will ALWAYS be POST.
+
+
+
+ Creates a select list with the values in a collection.
+
+ Name of the SELECT-tag
+ collection used to generate options.
+ delegate used to return id and title from objects.
+ value that should be marked as selected.
+ First row should contain an empty value.
+ string containtain a SELECT-tag.
+
+
+
+
+ Creates a select list with the values in a collection.
+
+ Name of the SELECT-tag
+ Id of the SELECT-tag
+ collection used to generate options.
+ delegate used to return id and title from objects.
+ value that should be marked as selected.
+ First row should contain an empty value.
+ string containtain a SELECT-tag.
+
+
+
+ // Class that is going to be used in a SELECT-tag.
+ public class User
+ {
+ private readonly string _realName;
+ private readonly int _id;
+ public User(int id, string realName)
+ {
+ _id = id;
+ _realName = realName;
+ }
+ public string RealName
+ {
+ get { return _realName; }
+ }
+
+ public int Id
+ {
+ get { return _id; }
+ }
+ }
+
+ // Using an inline delegate to generate the select list
+ public void UserInlineDelegate()
+ {
+ List<User> items = new List<User>();
+ items.Add(new User(1, "adam"));
+ items.Add(new User(2, "bertial"));
+ items.Add(new User(3, "david"));
+ string htmlSelect = Select("users", "users", items, delegate(object o, out object id, out object value)
+ {
+ User user = (User)o;
+ id = user.Id;
+ value = user.RealName;
+ }, 2, true);
+ }
+
+ // Using an method as delegate to generate the select list.
+ public void UseExternalDelegate()
+ {
+ List<User> items = new List<User>();
+ items.Add(new User(1, "adam"));
+ items.Add(new User(2, "bertial"));
+ items.Add(new User(3, "david"));
+ string htmlSelect = Select("users", "users", items, UserOptions, 1, true);
+ }
+
+ // delegate returning id and title
+ public static void UserOptions(object o, out object id, out object title)
+ {
+ User user = (User)o;
+ id = user.Id;
+ value = user.RealName;
+ }
+
+
+
+
+
+ Creates a select list with the values in a collection.
+
+ Name of the SELECT-tag
+ Id of the SELECT-tag
+ collection used to generate options.
+ delegate used to return id and title from objects.
+ value that should be marked as selected.
+ First row should contain an empty value.
+ name, value collection of extra html attributes.
+ string containtain a SELECT-tag.
+
+
+
+
+ Generate a list of HTML options
+
+ collection used to generate options.
+ delegate used to return id and title from objects.
+ value that should be marked as selected.
+ First row should contain an empty value.
+
+
+
+
+ Creates a checkbox.
+
+ element name
+ element value
+ determines if the check box is selected or not. This is done diffrently depending on the
+ type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
+ the box is checked or not.
+ a list with additional attributes (name, value, name, value).
+ a generated radio button
+
+
+
+ Creates a checkbox.
+
+ element name
+ element id
+ element value
+ determines if the check box is selected or not. This is done diffrently depending on the
+ type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
+ the box is checked or not.
+ a list with additional attributes (name, value, name, value).
+ a generated radio button
+
+ value in your business object. (check box will be selected if it matches the element value)
+
+
+
+
+ Creates a checkbox.
+
+ element name
+ element id
+ determines if the check box is selected or not. This is done diffrently depending on the
+ type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
+ the box is checked or not.
+ a list with additional attributes (name, value, name, value).
+ a generated radio button
+ will set value to "1".
+
+
+
+ Creates a RadioButton.
+
+ element name
+ element value
+ determines if the radio button is selected or not. This is done diffrently depending on the
+ type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
+ the box is checked or not.
+ a list with additional attributes (name, value, name, value).
+ a generated radio button
+
+
+
+ Creates a RadioButton.
+
+ element name
+ element id
+ element value
+ determines if the radio button is selected or not. This is done diffrently depending on the
+ type of variable. A bool simply trigges checked or not, all other types are compared with "value" to determine if
+ the box is checked or not.
+ a list with additional attributes (name, value, name, value).
+ a generated radio button
+
+
+
+ form close tag
+
+
+
+
+
+ The request could not be understood by the server due to malformed syntax.
+ The client SHOULD NOT repeat the request without modifications.
+
+ Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
+
+
+
+
+ Create a new bad request exception.
+
+ reason to why the request was bad.
+
+
+
+ Create a new bad request exception.
+
+ reason to why the request was bad.
+ inner exception
+
+
+
+ Implements HTTP Digest authentication. It's more secure than Basic auth since password is
+ encrypted with a "key" from the server.
+
+
+ Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Delegate used to provide information used during authentication.
+ Delegate used to determine if authentication is required (may be null).
+
+
+
+ Initializes a new instance of the class.
+
+ Delegate used to provide information used during authentication.
+
+
+
+ Used by test classes to be able to use hardcoded values
+
+
+
+
+ An authentication response have been received from the web browser.
+ Check if it's correct
+
+ Contents from the Authorization header
+ Realm that should be authenticated
+ GET/POST/PUT/DELETE etc.
+ First option: true if username/password is correct but not cnonce
+
+ Authentication object that is stored for the request. A user class or something like that.
+
+ if authenticationHeader is invalid
+ If any of the paramters is empty or null.
+
+
+
+ Encrypts parameters into a Digest string
+
+ Realm that the user want's to log into.
+ User logging in
+ Users password.
+ HTTP metod.
+ Uri/domain that generated the login prompt.
+ The qop.
+ The nonce.
+ The nc.
+ The cnonce.
+ Digest enrypted string
+
+
+
+ Create a response that can be sent in the WWW-Authenticate header.
+
+ Realm that the user should authenticate in
+ First options specifies if true if username/password is correct but not cnonce.
+ A correct auth request.
+ If realm is empty or null.
+
+
+
+ Decodes authorization header value
+
+ header value
+ Encoding that the buffer is in
+ All headers and their values if successful; otherwise null
+
+ NameValueCollection header = DigestAuthentication.Decode("response=\"6629fae49393a05397450978507c4ef1\",\r\nc=00001", Encoding.ASCII);
+
+ Can handle lots of whitespaces and new lines without failing.
+
+
+
+ Gets the current nonce.
+
+
+
+
+
+ Gets the Md5 hash bin hex2.
+
+ To be hashed.
+
+
+
+
+ determines if the nonce is valid or has expired.
+
+ nonce value (check wikipedia for info)
+ true if the nonce has not expired.
+
+
+
+ name used in http request.
+
+
+
+
+ Session store using memory for each session.
+
+
+
+
+ Initializes the class setting the expirationtimer to clean the session every minute
+
+
+
+
+ Delegate for the cleanup timer
+
+
+
+
+ Creates a new http session
+
+
+
+
+
+ Creates a new http session with a specific id
+
+ Id used to identify the new cookie..
+ A object.
+
+ Id should be generated by the store implementation if it's null or .
+
+
+
+
+ Load an existing session.
+
+
+
+
+
+
+ Save an updated session to the store.
+
+
+
+
+
+ We use the flyweight pattern which reuses small objects
+ instead of creating new each time.
+
+ EmptyLanguageNode (unused) session that should be reused next time Create is called.
+
+
+
+ Remove expired sessions
+
+
+
+
+ Remove a session
+
+ id of the session.
+
+
+
+ Load a session from the store
+
+
+ null if session is not found.
+
+
+
+ Number of minutes before a session expires.
+ Default is 20 minutes.
+
+
+
+
+ Keeps information about templates, so we know when to regenerate it.
+
+
+
+
+ When the template was compiled.
+
+ Use this date to determine if the template is old and needs to be recompiled.
+
+
+
+ Template file name.
+
+
+
+
+ The actual template.
+
+
+
+
+ Validator is used to validate all input items in a form.
+
+
+
+
+ Initializes a new instance of the class.
+
+ collection to be filled with errors
+
+
+
+ Initializes a new instance of the class.
+
+ collection to be filled with errors
+ Translation used to translate the "name" parameters in all validation methods.
+
+
+
+ Initializes a new instance of the class.
+
+ Translation used to translate the "name" parameters in all validation methods.
+
+
+
+
+
+ form that validation should be made on.
+
+
+
+
+
+ collection that all validation errors are added to.
+ form that validation should be made on.
+
+
+
+
+
+ collection that all validation errors are added to.
+ form that validation should be made on.
+ Language category used to translate field names.
+
+
+
+ Switch to a new http input.
+
+ form to use validation for now
+
+
+
+ Switch to a new http input.
+
+ form to use validation for now
+ language for the validation
+
+
+
+ Check if a value is digits only
+
+ Field name.
+ true if field is required (may not be empty)
+ string if validated, otherwise string.Empty
+
+
+
+ Check if a value is digits only
+
+ Field name.
+ extra characters that is allowed.
+ true if field is required (may not be empty)
+ string if validated, otherwise string.Empty
+
+
+
+ Check whether the specified form item is an integer.
+
+ Form parameter to validate
+ value if parameter is an int; 0 if not.
+
+
+
+ Check whether the specified form item is an integer.
+
+ Form parameter to validate
+ Paramater is required (adds an error if it's not specified)
+ value if parameter is an int; 0 if not.
+
+
+
+ Check whether the specified value is a double.
+
+ Name of the parameter
+ Paramater is required (adds an error if it's not specified)
+ value if parameter is a double; 0 if not.
+
+
+
+ Check whether the specified value is a currency amount.
+
+ Name of the parameter
+ Paramater is required (adds an error if it's not specified)
+ value if parameter is a currency amount; 0 if not.
+
+
+
+ Validates a string to hex
+
+ The name of the field to validate
+ If the field must be set
+ The value if validated otherwise string.Empty
+
+
+
+ Validate that a string only contains letters or digits.
+
+ Name of form parameter to validate.
+ Value is required.
+ value if valid; otherwise string.EmptyLanguageNode.
+
+
+
+ Validate that a string only contains letters or digits.
+
+ Form parameter name.
+ vaue if found; otherwise string.Empty
+
+
+
+ Validate that a string only contains letters, digits or the specified characters
+
+ Form parameter name.
+ may not be null or empty if true.
+ any other allowed characters.
+ value if valid; otherwise string.Empty
+
+
+
+ Validate that a string consists of only letters (including special letters)
+
+
+ If a value must be passed
+
+
+
+
+ Validate that a string consists of only letters (a-z and A-Z)
+
+
+ If a value must be passed
+ A string of extra character to test against, dont forget language specific characters and spaces if wished for
+
+
+
+
+ Check whether the specified value is an integer.
+
+ Name of the parameter
+ value if parameter contains valid characters; string.Empty if not.
+
+
+
+ Check whether the specified value is an integer.
+
+ Name of the parameter
+ Paramater is required (adds an error if it's not specified)
+ value if parameter contains valid characters; string.Empty if not.
+
+
+
+ Validate that a string only contains letters or digits or any of the .
+
+ Name of form parameter to validate.
+ Value is required.
+ value if valid; otherwise string.Empty.
+
+
+
+ Validate that a string only contains letters or digits or any of the .
+
+ Form parameter name.
+ vaue if found; otherwise string.Empty
+
+
+
+ Check's weather a parameter is null or not.
+
+ Parameter in form
+ true if value is not null; otherwise false.
+
+
+
+ Validate a string value
+
+ Name of form parameter to validate.
+ Value is required.
+ value if valid; otherwise string.Empty.
+
+
+
+ Validate a string parameter in the form
+
+ Form parameter name.
+ vaue if found; otherwise string.Empty
+
+
+
+ validates email address using a regexp.
+
+ field name
+ field is required (may not be null or empty).
+ value if validation is ok; otherwise string.Empty.
+
+
+
+ Check whether the specified value is an character.
+
+ Name of the parameter
+ Paramater is required (adds an error if it's not specified)
+ value if parameter is an int; char.MinValue if not.
+
+
+
+ Check whether the specified value is an character.
+
+ Name of the parameter
+ value if parameter is an int; char.MinValue if not.
+
+
+
+ Checks whether a field is true (can also be in native language).
+
+ field name
+ field is required (may not be null or empty).
+ true if value is true; false if value is false or if validation failed.
+ Check validation errors to see if error ocurred.
+
+
+
+ Checks whether a field is true (can also be in native language).
+
+ field name
+ true if value is true; false if value is false or if validation failed.
+ Check validation errors to see if error ocurred.
+
+
+
+ Class to handle loading of resource files
+
+
+
+
+ ]]>
+
+
+
+ Parses a filename and sets it to the extensionless name in lowercase. The extension is cut out without the dot.
+
+
+
+
+ string ext;
+ string filename = "/uSeR/teSt.haMl";
+ ParseName(ref filename, out ext);
+ Console.WriteLine("File: " + filename);
+ Console.WriteLine("Ext: " + ext);
+ -> user/test
+ -> haml
+
+
+
+
+ Add a resource to a specified uri without extension, ie user/test
+
+ The uri to add the resource to
+ The instance describing the resource
+
+
+
+ Loads resources from a namespace in the given assembly to an uri
+
+ The uri to map the resources to
+ The assembly in which the resources reside
+ The namespace from which to load the resources
+
+ resourceLoader.LoadResources("/user/", typeof(User).Assembly, "MyLib.Models.User.Views");
+
+ will make ie the resource MyLib.Models.User.Views.list.Haml accessible via /user/list.haml or /user/list/
+
+
+
+
+ Retrieves a stream for the specified resource path if loaded otherwise null
+
+ Path to the resource to retrieve a stream for
+ A stream or null if the resource couldn't be found
+
+
+
+ Fetch all files from the resource that matches the specified arguments.
+
+ The path to the resource to extract
+
+ a list of files if found; or an empty array if no files are found.
+
+
+
+
+ Fetch all files from the resource that matches the specified arguments.
+
+ Where the file should reside.
+ Files to check
+
+ a list of files if found; or an empty array if no files are found.
+
+
+
+
+ Returns whether or not the loader has an instance of the file requested
+
+ The name of the template/file
+ True if the loader can provide the file
+
+
+
+ We dont want to let the server to die due to exceptions thrown in worker threads.
+ therefore we use this delegate to give you a change to handle uncaught exceptions.
+
+ Class that the exception was thrown in.
+ Exception
+
+ Server will throw a InternalServerException in release version if you dont
+ handle this delegate.
+
+
+
+
+ Method marked with this attribute determines if authentication is required.
+
+
+
+
+
+
+ The method should take one parameter (int level), return a bool and be protected/private.
+ You should throw UnauthorizedException if you are using HTTP authentication.
+
+
+ = level;
+ }
+ }
+ ]]>
+
+
+
+
+ This class is created as a wrapper, since there are two different cookie types in .Net (Cookie and HttpCookie).
+ The framework might switch class in the future and we dont want to have to replace all instances
+
+
+
+
+ Let's copy all the cookies.
+
+ value from cookie header.
+
+
+
+ Adds a cookie in the collection.
+
+ cookie to add
+ cookie is null
+
+
+
+ Gets a collection enumerator on the cookie list.
+
+ collection enumerator
+
+
+
+ Remove all cookies.
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+
+ A that can be used to iterate through the collection.
+
+ 1
+
+
+
+ Gets the count of cookies in the collection.
+
+
+
+
+ Gets the cookie of a given identifier (null if not existing).
+
+
+
+
+ Delegate used to find a realm/domain.
+
+
+
+
+ Realms are used during HTTP Authentication
+
+
+
+
+
+
+ A complete HTTP server, you need to add a module to it to be able to handle incoming requests.
+
+
+
+ // this small example will add two web site modules, thus handling
+ // two different sites. In reality you should add Controller modules or something
+ // two the website modules to be able to handle different requests.
+ HttpServer server = new HttpServer();
+ server.Add(new WebSiteModule("www.gauffin.com", "Gauffin Telecom AB"));
+ server.Add(new WebSiteModule("www.vapadi.se", "Remote PBX"));
+
+ // start regular http
+ server.Start(IPAddress.Any, 80);
+
+ // start https
+ server.Start(IPAddress.Any, 443, myCertificate);
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Form decoders are used to convert different types of posted data to the object types.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ A session store is used to save and retrieve sessions
+
+
+
+
+ Initializes a new instance of the class.
+
+ The log writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Form decoders are used to convert different types of posted data to the object types.
+ The log writer.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ Form decoders are used to convert different types of posted data to the object types.
+ A session store is used to save and retrieve sessions
+ The log writer.
+
+
+
+
+
+
+
+ Adds the specified rule.
+
+ The rule.
+
+
+
+ Add a to the server.
+
+ mode to add
+
+
+
+ Decodes the request body.
+
+ The request.
+
+
+
+ Generate a HTTP error page (that will be added to the response body).
+ response status code is also set.
+
+ Response that the page will be generated in.
+ .
+ response body contents.
+
+
+
+ Generate a HTTP error page (that will be added to the response body).
+ response status code is also set.
+
+ Response that the page will be generated in.
+ exception.
+
+
+
+ Realms are used by the s.
+
+ HTTP request
+ domain/realm.
+
+
+
+ Process an incoming request.
+
+ connection to client
+ request information
+ response that should be filled
+ session information
+
+
+
+ Can be overloaded to implement stuff when a client have been connected.
+
+
+ Default implementation does nothing.
+
+ client that disconnected
+ disconnect reason
+
+
+
+ Handle authentication
+
+
+
+
+ true if request can be handled; false if not.
+
+
+
+ Will request authentication.
+
+
+ Sends respond to client, nothing else can be done with the response after this.
+
+
+
+
+
+
+
+ Start the web server using regular HTTP.
+
+ IP Address to listen on, use IpAddress.Any to accept connections on all ip addresses/network cards.
+ Port to listen on. 80 can be a good idea =)
+
+
+
+ Accept secure connections.
+
+ IP Address to listen on, use IpAddress.Any to accept connections on all ipaddresses/network cards.
+ Port to listen on. 80 can be a good idea =)
+ Certificate to use
+
+
+
+ shut down the server and listeners
+
+
+
+
+ write an entry to the log file
+
+ importance of the message
+ log message
+
+
+
+ write an entry to the log file
+
+ object that wrote the message
+ importance of the message
+ log message
+
+
+
+ Modules used for authentication. The module that is is added first is used as
+ the default authentication module.
+
+ Use the corresponding property
+ in the WebSiteModule if you are using multiple websites.
+
+
+
+ Form decoder providers are used to decode request body (which normally contains form data).
+
+
+
+
+ Server name sent in HTTP responses.
+
+
+ Do NOT include version in name, since it makes it
+ easier for hackers.
+
+
+
+
+ Name of cookie where session id is stored.
+
+
+
+
+ Specified where logging should go.
+
+
+
+
+
+
+
+ Number of connections that can wait to be accepted by the server.
+
+ Default is 10.
+
+
+
+ Realms are used during HTTP authentication.
+ Default realm is same as server name.
+
+
+
+
+ Let's to receive unhandled exceptions from the threads.
+
+
+ Exceptions will be thrown during debug mode if this event is not used,
+ exceptions will be printed to console and suppressed during release mode.
+
+
+
+
+ The request requires user authentication. The response MUST include a
+ WWW-Authenticate header field (section 14.47) containing a challenge
+ applicable to the requested resource.
+
+ The client MAY repeat the request with a suitable Authorization header
+ field (section 14.8). If the request already included Authorization
+ credentials, then the 401 response indicates that authorization has been
+ refused for those credentials. If the 401 response contains the same challenge
+ as the prior response, and the user agent has already attempted authentication
+ at least once, then the user SHOULD be presented the entity that was given in the response,
+ since that entity might include relevant diagnostic information.
+
+ HTTP access authentication is explained in rfc2617:
+ http://www.ietf.org/rfc/rfc2617.txt
+
+ (description is taken from
+ http://www.submissionchamber.com/help-guides/error-codes.php#sec10.4.2)
+
+
+
+
+ Create a new unauhtorized exception.
+
+
+
+
+
+ Create a new unauhtorized exception.
+
+ reason to why the request was unauthorized.
+ inner exception
+
+
+
+ Create a new unauhtorized exception.
+
+ reason to why the request was unauthorized.
+
+
+
+ Generates C# rendering object using ASP similiar tags in the HTML code.
+
+
+
+
+ Generate C# code from the template.
+
+ A textwriter that the generated code will be written to.
+ If the template have not been parsed first.
+ If template is incorrect
+
+
+
+ Parse a file and convert into to our own template object code.
+
+ Path and filename to a template
+ If something is incorrect in the template.
+
+
+
+
+
+
+
+
+ Parse a file and convert into to our own template object code.
+
+ A textreader containing our template
+ If something is incorrect in the template.
+
+
+
+ Purpose if this class is to take template objects and keep them in
+ memory. It will also take a filename and the code generator to use
+ if when the template have been changed on disk.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Template loaders used to load templates from any source.
+ The loaders will be invoked in the order they are given, that is the first loader will always be asked to give a template
+ first.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Uses the file template loader.
+
+
+
+ Add a template generator
+
+ File extension without the dot.
+ Generator to handle the extension
+ If the generator already exists.
+ If file extension is incorrect
+ If generator is not specified.
+
+
+ cache.Add("haml", new HamlGenerator());
+
+
+
+
+
+ This type should be included, so it may be called from the scripts (name space and assembly).
+
+
+
+
+
+ Checks the template.
+
+ Template information, filename must be set.
+ true if template exists and have been compiled.
+
+
+
+ Compiles the specified code.
+
+ Name of template.
+ c# code generated from a template.
+ Arguments as in name, value, name, value, name, value
+
+ An id to specify the exact instance of a template. Made from joining the 'TemplateClass' with the hashcode of the filename
+ and the hashcode of the supplied arguments
+
+ Template
+ If compilation fails
+
+
+
+ Will generate code from the template.
+ Next step is to compile the code.
+
+ Path and filename to template.
+
+ If no template generator exists for the specified extension.
+ If parsing/compiling fails
+
+
+
+
+ Find a template using wildcards in filename.
+
+ Full path (including wildcards in filename) to where we should find a template.
+ First found generator if an extension was matched; otherwise null.
+ method is not thread safe
+
+
+
+ Render a partial
+
+ Path and filename
+ Variables used in the template. Should be specified as "name, value, name, value" where name is variable name and value is variable contents.
+ Arguments passed from parent template
+
+
+
+
+
+
+
+ Generate HTML from a template.
+
+ Path and filename
+ Variables used in the template. Should be specified as "name, value, name, value" where name is variable name and value is variable contents.
+
+
+
+
+
+ string html = cache.Generate("views\\users\\view.haml", new TemplateArguments("user", dbUser, "isAdmin", dbUser.IsAdmin), null);
+
+
+
+
+
+ Keeps information about templates, so we know when to regenerate it.
+
+
+
+
+ Container to bind resource names to assemblies
+
+
+
+
+ Instantiates an instance of
+
+ The full name/path of the resource
+ The assembly the resource exists in
+
+
+
+ Retrieves a stream to the resouce
+
+ Null if the resource couldn't be located somehow
+
+
+
+ Retrieves the assembly the resource resides in
+
+
+
+
+ Retrieves the full name/path of the assembly
+
+
+
+
+ Retrieves the extension of the resource
+
+
+
+
+ This template loader loads all templates from a folder on the hard drive.
+
+
+
+
+ Initializes a new instance of the class.
+
+ A prefix that is prepended to all requested files.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Load a template into a and return it.
+
+ Relative path (and filename) to template.
+
+ a if file was found; otherwise null.
+
+
+
+
+ Fetch all files from the resource that matches the specified arguments.
+
+ Where the file should reside.
+ Files to check
+
+ a list of files if found; or an empty array if no files are found.
+
+
+
+
+ Returns whether or not the loader has an instance of the file requested
+
+ The name of the template/file
+ True if the loader can provide the file
+
+
+
+ Check's whether a template should be reloaded or not.
+
+ template information
+
+ true if template is OK; false if it do not exist or are old.
+
+
+
+
+ A prefix that is prepended to all requested files.
+
+
+
+ \\templateName.*"
+ mgr.PathPrefix = "views\\";
+ ]]>
+
+
+ PathPrefix may not be null, only string.Empty
+
+
+
+
+ Helpers to make XML handling easier
+
+
+
+
+ Serializes object to XML.
+
+ object to serialize.
+ xml
+
+ Removes namespaces and adds intendation
+
+
+
+
+ Response that is sent back to the web browser / client.
+
+ A response can be sent if different ways. The easiest one is
+ to just fill the Body stream with content, everything else
+ will then be taken care of by the framework. The default content-type
+ is text/html, you should change it if you send anything else.
+
+ The second and slighty more complex way is to send the response
+ as parts. Start with sending the header using the SendHeaders method and
+ then you can send the body using SendBody method, but do not forget
+ to set ContentType and ContentLength before doing so.
+
+
+ public void MyHandler(IHttpRequest request, IHttpResponse response)
+ {
+
+ }
+
+
+
+
+ Add another header to the document.
+
+ Name of the header, case sensitive, use lower cases.
+ Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n
+ If headers already been sent.
+ If value conditions have not been met.
+ Adding any header will override the default ones and those specified by properties.
+
+
+
+ Send headers and body to the browser.
+
+ If content have already been sent.
+
+
+
+ Make sure that you have specified ContentLength and sent the headers first.
+
+
+ If headers have not been sent.
+
+ offest of first byte to send
+ number of bytes to send.
+
+
+ This method can be used if you want to send body contents without caching them first. This
+ is recommended for larger files to keep the memory usage low.
+
+
+
+ Make sure that you have specified ContentLength and sent the headers first.
+
+
+ If headers have not been sent.
+
+
+
+ This method can be used if you want to send body contents without caching them first. This
+ is recommended for larger files to keep the memory usage low.
+
+
+
+ Send headers to the client.
+
+ If headers already been sent.
+
+
+
+
+
+
+ Redirect client to somewhere else using the 302 status code.
+
+ Destination of the redirect
+ If headers already been sent.
+ You can not do anything more with the request when a redirect have been done. This should be your last
+ action.
+
+
+
+ redirect to somewhere
+
+ where the redirect should go
+
+ No body are allowed when doing redirects.
+
+
+
+
+ The body stream is used to cache the body contents
+ before sending everything to the client. It's the simplest
+ way to serve documents.
+
+
+
+
+ The chunked encoding modifies the body of a message in order to
+ transfer it as a series of chunks, each with its own size indicator,
+ followed by an OPTIONAL trailer containing entity-header fields. This
+ allows dynamically produced content to be transferred along with the
+ information necessary for the recipient to verify that it has
+ received the full message.
+
+
+
+
+ Kind of connection
+
+
+
+
+ Encoding to use when sending stuff to the client.
+
+ Default is UTF8
+
+
+
+ Number of seconds to keep connection alive
+
+ Only used if Connection property is set to ConnectionType.KeepAlive
+
+
+
+ Status code that is sent to the client.
+
+ Default is HttpStatusCode.Ok
+
+
+
+ Information about why a specific status code was used.
+
+
+
+
+ Size of the body. MUST be specified before sending the header,
+ unless property Chunked is set to true.
+
+
+
+
+ Kind of content in the body
+
+ Default is text/html
+
+
+
+ Headers have been sent to the client-
+
+ You can not send any additional headers if they have already been sent.
+
+
+
+ The whole response have been sent.
+
+
+
+
+ Cookies that should be created/changed.
+
+
+
+
+ Type of HTTP connection
+
+
+
+
+ Connection is closed after each request-response
+
+
+
+
+ Connection is kept alive for X seconds (unless another request have been made)
+
+
+
+
+ represents a http input item. Each item can have multiple sub items, a sub item
+ is made in a html form by using square brackets
+
+
+ // becomes:
+ Console.WriteLine("Value: {0}", form["user"]["FirstName"].Value);
+
+
+ All names in a form SHOULD be in lowercase.
+
+
+
+ Representation of a non-initialized HttpInputItem
+
+
+
+ Initializes an input item setting its name/identifier and value
+
+ Parameter name/id
+ Parameter value
+
+
+ Creates a deep copy of the item specified
+ The item to copy
+ The function makes a deep copy of quite a lot which can be slow
+
+
+
+ Add another value to this item
+
+
+
+
+
+ checks if a subitem exists (and has a value).
+
+ name in lower case
+ true if the subitem exists and has a value; otherwise false.
+
+
+ Returns a formatted representation of the instance with the values of all contained parameters
+
+
+
+ Outputs the string in a formatted manner
+
+ A prefix to append, used internally
+ produce a query string
+
+
+
+ Add a sub item
+
+ Can contain array formatting, the item is then parsed and added in multiple levels
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+
+ A that can be used to iterate through the collection.
+
+ 1
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+
+ An object that can be used to iterate through the collection.
+
+ 2
+
+
+
+ Outputs the string in a formatted manner
+
+ A prefix to append, used internally
+
+
+
+
+ Number of values
+
+
+
+
+ Get a sub item
+
+ name in lower case.
+ HttpInputItem.Empty if no item was found.
+
+
+
+ Name of item (in lower case).
+
+
+
+
+ Returns the first value, or null if no value exist.
+
+
+
+
+ Returns the last value, or null if no value exist.
+
+
+
+
+ Returns the list with values.
+ todo: Return a readonly collection
+
+
+
+
+
+
+ name in lower case
+
+
+
+
+ Can handle application/x-www-form-urlencoded
+
+
+
+
+
+ Stream containing the content
+ Content type (with any additional info like boundry). Content type is always supplied in lower case
+ Stream enconding
+
+ A http form, or null if content could not be parsed.
+
+ If contents in the stream is not valid input data.
+
+
+
+ Checks if the decoder can handle the mime type
+
+ Content type (with any additional info like boundry). Content type is always supplied in lower case.
+ True if the decoder can parse the specified content type
+
+
+
+ Used to simply testing of controls.
+
+
+
+
+ Fake host name, default is "http://localhost"
+
+
+
+
+ Session used if null have been specified as argument to one of the class methods.
+
+
+
+
+ Send a GET request to a controller.
+
+ Controller receiving the post request.
+ Uri visited.
+ Response from the controller.
+ Session used during the test. null = is used.
+ body posted by the response object
+
+
+ void MyTest()
+ {
+ ControllerTester tester = new ControllerTester();
+
+ MyController controller = new MyController();
+ IHttpResponse response;
+ string text = Get(controller, "/my/hello/1?hello=world", out response, null);
+ Assert.Equal("world|1", text);
+ }
+
+
+
+
+
+ Send a POST request to a controller.
+
+ Controller receiving the post request.
+ Uri visited.
+ Form being processed by controller.
+ Response from the controller.
+ Session used during the test. null = is used.
+ body posted by the response object
+
+
+ void MyTest()
+ {
+ // Create a controller.
+ MyController controller = new MyController();
+
+ // build up a form that is used by the controller.
+ HttpForm form = new HttpForm();
+ form.Add("user[firstName]", "Jonas");
+
+ // Invoke the request
+ ControllerTester tester = new ControllerTester();
+ IHttpResponse response;
+ string text = tester.Get(controller, "/user/create/", form, out response, null);
+
+ // validate response back from controller.
+ Assert.Equal("User 'Jonas' has been created.", text);
+ }
+
+
+
+
+
+ Invoked when a client have been accepted by the
+
+
+ Can be used to revoke incoming connections
+
+
+
+
+ Initializes a new instance of the class.
+
+ The socket.
+
+
+
+ Client may not be handled.
+
+
+
+
+ Accepted socket.
+
+
+
+
+ Client should be revoked.
+
+
+
+
+ cookie being sent back to the browser.
+
+
+
+
+
+ cookie sent by the client/browser
+
+
+
+
+
+ Constructor.
+
+ cookie identifier
+ cookie content
+ id or content is null
+ id is empty
+
+
+
+ Gets the cookie HTML representation.
+
+ cookie string
+
+
+
+ Gets the cookie identifier.
+
+
+
+
+ Cookie value. Set to null to remove cookie.
+
+
+
+
+ Constructor.
+
+ cookie identifier
+ cookie content
+ cookie expiration date. Use DateTime.MinValue for session cookie.
+ id or content is null
+ id is empty
+
+
+
+ Create a new cookie
+
+ name identifying the cookie
+ cookie value
+ when the cookie expires. Setting DateTime.MinValue will delete the cookie when the session is closed.
+ Path to where the cookie is valid
+ Domain that the cookie is valid for.
+
+
+
+ Create a new cookie
+
+ Name and value will be used
+ when the cookie expires.
+
+
+
+ Gets the cookie HTML representation.
+
+ cookie string
+
+
+
+ When the cookie expires.
+ DateTime.MinValue means that the cookie expires when the session do so.
+
+
+
+
+ Cookie is only valid under this path.
+
+
+
+
+ Interface for dynamically generated templates.
+
+
+
+
+
+ Run the template to generate HTML code.
+
+ arguments passed to the template
+ template manager (a manager is used to generate templates)
+ HTML code.
+
+
+
+ Contains information on where in the template the error occurred, and what the error was.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Line that the error appeared on.
+ error description.
+
+
+
+ Initializes a new instance of the class.
+
+ Line that the error appeared on.
+ error description.
+ line contents.
+
+
+
+ Returns the actual line where the error originated
+
+
+
+
+ Line number in template
+
+
+
+
+ The ’-’ character makes the text following it into “silent” code: C# code that is evaluated, but not output.
+ It is not recommended that you use this widely; almost all processing code and logic should be restricted to the Controller, Helpers, or partials.
+
+ For example
+
+ - string foo = "hello"
+ - foo += " there"
+ - foo += " you!"
+ %p= foo
+
+
+ Is compiled to
+
+
+ hello there you!
+
+
+
+
+
+
+ determines if this node can handle the line (by checking the first word);
+
+ Controller char (word)
+ true if text belongs to this node type
+ first node on line
+
+
+
+ Parse node contents add return a fresh node.
+
+ List containing all node types
+ Node that this is a subnode to. Can be null
+ Line to parse
+ Where to start the parsing. Should be set to where the next node should start parsing.
+ A node corresponding to the bla bla; null if parsing failed.
+
+
+
+
+ Convert the node to c# code
+
+ True if we are inside the internal stringbuilder
+ true if all subnodes fit on one line
+ smallEnough is a default value, recalc it
+ c# code
+
+
+
+ Convert node to HTML (with ASP-tags)
+
+ HTML string
+
+
+
+ The compiler is responsible of creating a render object which can be
+ cached and used over and over again.
+
+
+
+
+
+
+ Base c# code for a template object.
+
+
+
+
+ Create a new template compiler
+
+
+
+
+ Adds the specified type.
+
+ The type.
+
+
+
+ Compiles the specified args.
+
+ Arguments, should contain "name, value, name, value" etc.
+ c# code that will be included in the generated template class
+ Id of the template class
+ Tiny template if successful; otherwise null.
+ If compilation fails
+ If args are incorrect
+
+
+
+ Response that is sent back to the web browser / client.
+
+ A response can be sent if different ways. The easiest one is
+ to just fill the Body stream with content, everything else
+ will then be taken care of by the framework. The default content-type
+ is text/html, you should change it if you send anything else.
+
+ The second and slighty more complex way is to send the response
+ as parts. Start with sending the header using the SendHeaders method and
+ then you can send the body using SendBody method, but do not forget
+ to set ContentType and ContentLength before doing so.
+
+
+ public void MyHandler(IHttpRequest request, IHttpResponse response)
+ {
+
+ }
+
+ todo: add two examples, using SendHeaders/SendBody and just the Body stream.
+
+
+
+ Initializes a new instance of the class.
+
+ The context.
+ The request.
+
+
+
+ Add another header to the document.
+
+ Name of the header, case sensitive, use lower cases.
+ Header values can span over multiple lines as long as each line starts with a white space. New line chars should be \r\n
+ If headers already been sent.
+ If value conditions have not been met.
+ Adding any header will override the default ones and those specified by properties.
+
+
+
+ Send headers and body to the browser.
+
+ If content have already been sent.
+
+
+
+ Make sure that you have specified ContentLength and sent the headers first.
+
+
+ If headers have not been sent.
+
+ offest of first byte to send
+ number of bytes to send.
+
+
+ This method can be used if you want to send body contents without caching them first. This
+ is recommended for larger files to keep the memory usage low.
+
+
+
+ Make sure that you have specified ContentLength and sent the headers first.
+
+
+ If headers have not been sent.
+
+
+
+ This method can be used if you want to send body contents without caching them first. This
+ is recommended for larger files to keep the memory usage low.
+
+
+
+ Send headers to the client.
+
+ If headers already been sent.
+
+
+
+
+
+
+ Redirect client to somewhere else using the 302 status code.
+
+ Destination of the redirect
+ If headers already been sent.
+ You can not do anything more with the request when a redirect have been done. This should be your last
+ action.
+
+
+
+ redirect to somewhere
+
+ where the redirect should go
+
+ No body are allowed when doing redirects.
+
+
+
+
+ The body stream is used to cache the body contents
+ before sending everything to the client. It's the simplest
+ way to serve documents.
+
+
+
+
+ The chunked encoding modifies the body of a message in order to
+ transfer it as a series of chunks, each with its own size indicator,
+ followed by an OPTIONAL trailer containing entity-header fields. This
+ allows dynamically produced content to be transferred along with the
+ information necessary for the recipient to verify that it has
+ received the full message.
+
+
+
+
+ Kind of connection
+
+
+
+
+ Encoding to use when sending stuff to the client.
+
+ Default is UTF8
+
+
+
+ Number of seconds to keep connection alive
+
+ Only used if Connection property is set to ConnectionType.KeepAlive
+
+
+
+ Status code that is sent to the client.
+
+ Default is HttpStatusCode.Ok
+
+
+
+ Information about why a specific status code was used.
+
+
+
+
+ Size of the body. MUST be specified before sending the header,
+ unless property Chunked is set to true.
+
+
+
+
+ Kind of content in the body
+
+ Default is text/html
+
+
+
+ Headers have been sent to the client-
+
+ You can not send any additional headers if they have already been sent.
+
+
+
+ The whole response have been sent.
+
+
+
+
+ Cookies that should be created/changed.
+
+
+
+
+ A reverse proxy are used to act as a bridge between local (protected/hidden) websites
+ and public clients.
+
+ A typical usage is to allow web servers on non standard ports to still be available
+ to the public clients, or allow web servers on private ips to be available.
+
+
+
+
+
+
+ Base url requested from browser
+ Base url on private web server
+
+ // this will return contents from http://192.168.1.128/view/jonas when client requests http://www.gauffin.com/user/view/jonas
+ _server.Add(new ReverseProxyModule("http://www.gauffin.com/user/", "http://192.168.1.128/");
+
+
+
+
+ Method that determines if an url should be handled or not by the module
+
+ Url requested by the client.
+ true if module should handle the url.
+
+
+
+ Method that process the url
+
+ Information sent by the browser about the request
+ Information that is being sent back to the client.
+ Session used to
+
+
+ Container for posted form data
+
+
+ Instance to help mark a non-initialized form
+
+
+ Initializes a form container with the specified name
+
+
+
+ Makes a deep copy of the input
+
+ The input to copy
+
+
+
+ Adds a file to the collection of posted files
+
+ The file to add
+ If the file is already added
+ If file is null
+ If the instance is HttpForm.EmptyForm which cannot be modified
+
+
+
+ Checks if the form contains a specified file
+
+ Field name of the file parameter
+ True if the file exists
+ If the instance is HttpForm.EmptyForm which cannot be modified
+
+
+
+ Retrieves a file held by by the form
+
+ The identifier of the file
+ The requested file or null if the file was not found
+ If name is null or empty
+ If the instance is HttpForm.EmptyForm which cannot be modified
+
+
+ Disposes all held HttpFile's and resets values
+
+
+
+ The server encountered an unexpected condition which prevented it from fulfilling the request.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ error message.
+
+
+
+ Initializes a new instance of the class.
+
+ error message.
+ inner exception.
+
+
+
+ This attribute tells the controller that the method
+ uses SendHeader and/or SendBody to handle the request.
+
+
+
+
+ Contains line text and state information about a line in a HAML template.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The line number.
+ The unparsed data (line contents).
+
+
+
+ Will check that all rule conditions have been met.
+ Will also remove the rules if they are done.
+
+
+
+
+
+
+ Append another line
+
+
+
+
+
+ Parsed line contents (without whitespaces in the beginning)
+
+ text contents
+
+
+
+ Set intendation info to previously added line text.
+
+
+
+
+
+
+ Assign line text
+
+
+
+
+
+
+
+
+
+
+ If extra lines have been added.
+
+
+
+ If the next line should be appended to us (multi line)
+
+
+
+
+ Do NOT add yourself using the Add methods of the linkedList.
+ Parent property will add node.
+
+
+
+
+ Untouched line text
+
+
+
+
+ Has one or more children (intented more that this one)
+
+
+
+
+ Number of intends (two spaces = 1, one tab = 1)
+
+
+
+
+ Line number
+
+
+
+
+ Parent node (one level up in intendation)
+
+
+
+
+ All line data generated on one line
+
+
+
+
+ IRule have not got all needed information yet,
+ keep appending lines to this LineInfo until rule says that it's done.
+
+
+
+
+ Number of whitespaces before actual entry beings.
+
+
+
+
+ True if node is selfclosed (i.e. <br />)
+
+
+
+
+ Parse node contents add return a fresh node.
+
+ List containing all node types
+ Node that this is a subnode to. Can be null
+ Line to parse
+ Where to start the parsing. Should be set to where the next node should start parsing.
+ A node corresponding to the bla bla; null if parsing failed.
+
+
+
+
+ determines if this node can handle the line (by checking the first word);
+
+ Controller char (word)
+ true if text belongs to this node type
+ First node on line, used since some nodes cannot exist on their own on a line.
+
+
+
+ Convert node to HTML (with ASP-tags)
+
+ HTML string
+
+
+
+
+ Convert the node to c# code
+
+ True if we are inside the internal stringbuilder
+ true if all subnodes fit on one line
+ smallEnough is a default value, recalc it
+ c# code
+
+
+
+ Text nodes should be added as child.
+
+
+
+
+ Used to inform http server that
+
+
+
+
+ Eventarguments used when an exception is thrown by a module
+
+ the exception
+
+
+
+ Exception thrown in a module
+
+
+
+
+ View controllers integrates the templates, by adding
+ Render methods.
+
+
+
+
+ Create a new .
+
+
+
+
+ Create a new .
+
+ prototype to copy information from.
+
+
+
+ Render template for the currently invoked method.
+
+ arguments/parameters used in template
+ template generated content
+ calls RenderActionWithErrors
+
+
+
+ Render contents into a template.
+
+ method/template to generate
+ arguments/parameters used in template
+ template generated content
+ calls RenderActionWithErrors.
+
+
+
+ Merge arguments array and Arguments property.
+
+ Arguments array to merge
+ arguments/parameters that can be used in the template.
+ Will add Request/Response/Session arguments
+
+
+
+ Renders errors from the property into the
+ current method template, or as a JavaScript alert if the request is Ajax.
+
+ name of the currently invoked method.
+ arguments used in the method template.
+ generated string
+ Creates a JavaScript Alert box if request is Ajax.
+
+
+
+ Renders errors from the property into the
+ current method template, or as a JavaScript alert if the request is Ajax.
+
+ A collection of errors.
+ name of the currently invoked method.
+ arguments used in the method template.
+ generated string
+ Creates a JavaScript Alert box if request is Ajax.
+
+
+
+ Switches content-type to "text/JavaScript" and returns content.
+
+ JavaScript to send to the client.
+ JavaScript
+
+
+
+ Creates a JavaScript "alert" filled with all errors.
+
+
+ a
+
+
+
+ renders one of the layouts
+
+ layout to render (should be found in the "views\\layouts" folder).
+ contents will be put in the template variable called "text".
+ generated text/HTML.
+
+
+
+ Render a template.
+
+ Merges the Arguments property with the args parameter and pass those to the template.
+ controller name are used as a folder name when looking for the template.
+ method are used as filename when looking for the template.
+ arguments that should be passed to the template.
+
+
+
+
+ Invoked each time a new request is about to be invoked.
+
+ Can be used to clear old data.
+
+
+
+
+
+
+ Arguments that are being used in the templates.
+
+
+
+
+ A set of errors that occurred during request processing.
+ Key should be argument name (if argument error, otherwise ), value should be
+ the error message.
+
+ Errors can be rendered into templates using the method.
+
+
+
+
+ True if we always should render contents inside page layouts when request is Ajax.
+
+ default is false.
+
+
+
+ Which page layout to use (without file extension)
+
+
+
+ Page layouts should be places in the Views\Layouts folder.
+
+
+ default is "Application"
+
+
+
+
+
+ Page title (are added as a parameter to the layout template, use it in <title> HTML tag.
+
+
+
+
+ Arguments sent when a is cleared
+
+
+
+
+ Instantiates the arguments for the event
+
+ True if the session is cleared due to expiration
+
+
+
+ Returns true if the session is cleared due to expiration
+
+
+
+
+ Delegate for when a IHttpSession is cleared
+
+ this is being cleared.
+ Arguments for the clearing
+
+
+
+ Parse node contents add return a fresh node.
+
+ List containing all node types
+ Node that this is a subnode to. Can be null
+ Line to parse
+ Where to start the parsing. Should be set to where the next node should start parsing.
+ A node corresponding to the bla bla; null if parsing failed.
+
+
+
+
+ determines if this node can handle the line (by checking the first word);
+
+ Controller char (word)
+ true if text belongs to this node type
+ first node on line
+
+
+
+ Convert node to HTML (with ASP-tags)
+
+ HTML string
+
+
+
+ Convert the node to c# code
+
+ True if we are inside the internal stringbuilder
+ true if all subnodes fit on one line
+ smallEnough is a default value, recalc it
+ c# code
+
+
+
+ A list of prototype nodes.
+
+
+
+
+ Creates the node.
+
+ node identifier.
+ parent node.
+ created node if identifier was found; otherwise null.
+
+
+
+
+
+
+ first node on line
+
+
+
+
+ Add a prototype
+
+ prototype node
+
+
+
+ The purpose of this module is to serve files.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Uri to serve, for instance "/files/"
+ Path on hard drive where we should start looking for files
+ If true a Last-Modifed header will be sent upon requests urging webbrowser to cache files
+
+
+
+ Initializes a new instance of the class.
+
+ Uri to serve, for instance "/files/"
+ Path on hard drive where we should start looking for files
+
+
+
+ Mimtypes that this class can handle per default
+
+
+
+
+ Determines if the request should be handled by this module.
+ Invoked by the HttpServer
+
+
+ true if this module should handle it.
+
+
+
+ check if source contains any of the chars.
+
+
+
+
+
+
+
+ Method that process the url
+
+ Information sent by the browser about the request
+ Information that is being sent back to the client.
+ Session used to
+
+
+
+ return a file extension from an absolute uri path (or plain filename)
+
+
+
+
+
+
+ List with all mime-type that are allowed.
+
+ All other mime types will result in a Forbidden http status code.
+
+
+
+ characters that may not exist in a path.
+
+
+ fileMod.ForbiddenChars = new string[]{ "\\", "..", ":" };
+
+
+
+
+ Generic helper functions for Http
+
+
+
+
+ Version string for HTTP v1.0
+
+
+
+
+ Version string for HTTP v1.1
+
+
+
+
+ An empty url
+
+
+
+
+ Parses a querystring.
+
+ Querystring (url decoded)
+ A HttpInput object if successful; otherwise HttpInput.Empty
+
+
+
+ The server understood the request, but is refusing to fulfill it.
+ Authorization will not help and the request SHOULD NOT be repeated.
+ If the request method was not HEAD and the server wishes to make public why the request has not been fulfilled,
+ it SHOULD describe the reason for the refusal in the entity. If the server does not wish to make this information
+ available to the client, the status code 404 (Not Found) can be used instead.
+
+ Text taken from: http://www.submissionchamber.com/help-guides/error-codes.php
+
+
+
+
+ Initializes a new instance of the class.
+
+ error message
+
+
+
+ Delegate used to let authentication modules authenticate the username and password.
+
+ Realm that the user want to authenticate in
+ Username specified by client
+ Password supplied by the delagete
+ object that will be stored in a session variable called if authentication was successful.
+ throw forbidden exception if too many attempts have been made.
+
+
+
+ Let's you decide on a system level if authentication is requried.
+ You can also decide if authentication is required in each HttpModule.
+
+ Http request from client
+ true if user should be authenticated.
+ throw ForbiddenException if no more attempts are allowed.
+ If no more attempts are allowed
+
+
+
+ Represents a html class node.
+
+
+
+
+ Parse node contents add return a fresh node.
+
+ List containing all node types
+ Node that this is a subnode to. Can be null
+ Line to parse
+ Where to start the parsing. Should be set to where the next node should start parsing.
+ A node corresponding to the bla bla; null if parsing failed.
+
+
+
+
+ determines if this node can handle the line (by checking the first word);
+
+ Controller char (word)
+ true if text belongs to this node type
+ first node on line
+
+
+
+ Convert node to HTML (with ASP-tags)
+
+ HTML string
+
+
+
+ Convert the node to c# code
+
+ True if we are inside the internal stringbuilder
+ true if all subnodes fit on one line
+ smallEnough is a default value, recalc it
+ c# code
+
+
+
+
+
+
+ http://www.faqs.org/rfcs/rfc1867.html
+
+
+
+
+ multipart/form-data
+
+
+
+
+ form-data
+
+
+
+
+
+
+ Stream containing the content
+ Content type (with any additional info like boundry). Content type is always supplied in lower case
+ Stream enconding
+ A http form, or null if content could not be parsed.
+ If contents in the stream is not valid input data.
+ If any parameter is null
+
+
+
+ Checks if the decoder can handle the mime type
+
+ Content type (with any additional info like boundry). Content type is always supplied in lower case.
+ True if the decoder can parse the specified content type
+
+
+
+
+
+
+
+
+
+
+ Represents a field in a multipart form
+
+
+
+ Lists content type mime types.
+
+
+
+
+ text/plain
+
+
+
+
+ text/haml
+
+
+
+
+ content type for javascript documents = application/javascript
+
+
+
+ RFC 4329 states that text/javascript have been superseeded by
+ application/javascript. You might still want to check browser versions
+ since older ones do not support application/javascript.
+
+ Browser support: http://krijnhoetmer.nl/stuff/javascript/mime-types/
+
+
+
+
+ text/xml
+
+
+
+
+ A list of content types
+
+
+
+
+
+
+ Semicolon separated content types.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Searches for the specified type
+
+ Can also be a part of a type (searching for "xml" would return true for "application/xml").
+ true if type was found.
+
+
+
+ Get this first content type.
+
+
+
+
+ Fetch a content type
+
+ Part of type ("xml" would return "application/xml")
+
+ All content types are in lower case.
+
+
+
--
cgit v1.1