root/trunk/nuxleus/Source/Xameleon/Function/HttpRequestCollection.cs

Revision 4627, 7.5 kB (checked in by xmlhacker, 9 months ago)

various updates

Line 
1 using System;
2 using System.Collections;
3 using System.Diagnostics;
4 using System.Web;
5
6 namespace Xameleon.Function {
7
8     public class HttpRequestCollection {
9
10         static string notSet = "not-set";
11
12         public static string GetValue ( HttpRequest request, string type, string key ) {
13             try {
14                 switch (type) {
15                     case "cookie":
16                         if (request.Cookies.Count > 0) {
17                             IEnumerator enumerator = request.Cookies.GetEnumerator();
18                             for (int i = 0; enumerator.MoveNext(); i++) {
19                                 string local = request.Cookies.AllKeys[i].ToString();
20                                 if (local == key) {
21                                     return request.Cookies[local].Value;
22                                 }
23                             }
24                             return notSet;
25                         }
26                         return notSet;
27
28                     case "form":
29                         if (request.Form.Count > 0) {
30                             IEnumerator enumerator = request.Form.GetEnumerator();
31                             for (int i = 0; enumerator.MoveNext(); i++) {
32
33                                 string local = request.Form.AllKeys[i].ToString();
34                                 Console.WriteLine("Form Value {0}", local);
35                                 if (local == key) {
36                                     return request.Form[local];
37                                 }
38                             }
39                             return notSet;
40                         }
41                         return notSet;
42
43                     case "query-string":
44                         if (request.QueryString.Count > 0) {
45                             IEnumerator enumerator = request.QueryString.GetEnumerator();
46                             for (int i = 0; enumerator.MoveNext(); i++) {
47                                 string local = request.QueryString.AllKeys[i].ToString();
48                                 if (local == key) {
49                                     return request.QueryString[local];
50                                 }
51                             }
52                             return notSet;
53                         }
54                         return notSet;
55                     case "server-variable":
56                         if (request.ServerVariables.Count > 0) {
57                             IEnumerator enumerator = request.ServerVariables.GetEnumerator();
58                             for (int i = 0; enumerator.MoveNext(); i++) {
59                                 string local = request.ServerVariables.AllKeys[i].ToString();
60                                 if (local == key) {
61                                     return request.ServerVariables[local];
62                                 }
63                             }
64                             return notSet;
65                         }
66                         return notSet;
67
68                     case "header":
69                         if (request.Headers.Count > 0) {
70                             IEnumerator enumerator = request.Headers.GetEnumerator();
71                             for (int i = 0; enumerator.MoveNext(); i++) {
72                                 string local = request.Headers.AllKeys[i].ToString();
73                                 if (local == key) {
74                                     return request.Headers[local];
75                                 }
76                             }
77                             return notSet;
78                         }
79                         return notSet;
80                     case "file":
81                         if (request.Files.Count > 0) {
82                             foreach (string fieldName in request.Files.AllKeys) {
83                                 if (fieldName == key) {
84                                     return fieldName;
85                                 }
86                             }
87                         }
88                         return notSet;
89                     default:
90                         return notSet;
91                 }
92
93             } catch (Exception e) {
94                 Debug.WriteLine("Error: " + e.Message);
95                 return e.Message;
96             }
97         }
98     }
99 }
100 //EXPERIMENTAL: PERFORMANCE SEEMS NOTICEABLY SLOWER WITH THE CODE BELOW,
101 //BUT WANT TO KEEP IT AROUND UNTIL I HAVE A CHANCE TO BENCHMARK
102 //using System;
103 //using System.Collections;
104 //using System.IO;
105 //using System.Net;
106 //using System.Diagnostics;
107 //using System.Collections.Specialized;
108 //using System.Web;
109
110 //namespace Xameleon.Function {
111
112 //    public class HttpRequestCollection {
113
114 //        static string notSet = "not-set";
115
116 //        public static string GetValue(HttpRequest request, string type, string key) {
117 //            try {
118 //                switch (type) {
119 //                    case "cookie":
120 //                        if (request.Cookies.Count > 0) {
121 //                            try {
122 //                                return request.Cookies[key].Value;
123 //                            } catch {
124 //                                return notSet;
125 //                            }
126 //                        } else {
127 //                            return notSet;
128 //                        }
129 //                        break;
130
131 //                    case "form":
132 //                        if (request.Form.Count > 0) {
133 //                            try {
134 //                                return request.Form[key];
135 //                            } catch {
136 //                                return notSet;
137 //                            }
138 //                        } else {
139 //                            return notSet;
140 //                        }
141 //                        break;
142
143 //                    case "query-string":
144 //                        if (request.QueryString.Count > 0) {
145 //                            try {
146 //                                return request.QueryString[key];
147 //                            } catch {
148 //                                return notSet;
149 //                            }
150 //                        } else {
151 //                            return notSet;
152 //                        }
153 //                        break;
154 //                    case "server-variable":
155 //                        if (request.ServerVariables.Count > 0) {
156 //                            try {
157 //                                return request.ServerVariables[key];
158 //                            } catch {
159 //                                return notSet;
160 //                            }
161 //                        } else {
162 //                            return notSet;
163 //                        }
164 //                        break;
165
166 //                    case "header":
167 //                        if (request.Headers.Count > 0) {
168 //                            try {
169 //                                return request.Headers[key];
170 //                            } catch {
171 //                                return notSet;
172 //                            }
173 //                        } else {
174 //                            return notSet;
175 //                        }
176 //                        break;
177 //                    default:
178 //                        return notSet;
179 //                        break;
180 //                }
181
182 //            } catch (Exception e) {
183 //                Debug.WriteLine("Error: " + e.Message);
184 //                return e.Message;
185 //            }
186
187 //            return notSet;
188 //        }
189 //    }
190 //}
191
192
193
Note: See TracBrowser for help on using the browser.