-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathUrl.cs
More file actions
134 lines (109 loc) · 3.04 KB
/
Url.cs
File metadata and controls
134 lines (109 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
using System;
using System.Net;
using Smallcode.Net.Extensions;
namespace Smallcode.Net
{
public class Url
{
public Url(string urlString)
{
_urlString = urlString;
_data = new FormData();
}
public Url(string urlString, params object[] args)
: this(args.Length > 0 ? string.Format(urlString, args) : urlString)
{
}
public Url(string urlString, object arg0)
: this(string.Format(urlString, arg0))
{
}
public Url(string urlString, object arg0, object arg1)
: this(string.Format(urlString, arg0, arg1))
{
}
public Url(string urlString, object arg0, object arg1, object arg2)
: this(string.Format(urlString, arg0, arg1, arg2))
{
}
private string _urlString;
private readonly FormData _data;
public Uri Uri
{
get
{
return new Uri(ToString());
}
}
public override string ToString()
{
return _data.Count == 0 ? _urlString : string.Format("{0}{2}{1}", _urlString, _data, _urlString.Contains("?") ? "&" : "?");
}
public Url Encoding(UrlEncoding encoding)
{
_data.Encoding(encoding);
return this;
}
public Url Combine(string path)
{
if (_urlString.EndsWith("/") && path.StartsWith("/"))
path = path.TrimStart('/');
_urlString = _urlString + path;
return this;
}
public Url Append(string key, string value)
{
_data.Set(key, value);
return this;
}
public Url Append(string key, int value)
{
_data.Set(key, value);
return this;
}
public Url Append(string key, long value)
{
_data.Set(key, value);
return this;
}
public Url AppendEmpty(string key)
{
_data.SetEmpty(key);
return this;
}
public Url AppendZero(string key)
{
_data.SetZero(key);
return this;
}
public Url AppendTrue(string key)
{
_data.SetTrue(key);
return this;
}
public Url AppendFalse(string key)
{
_data.SetFalse(key);
return this;
}
public Url AppendRandomInteger(string key, int length)
{
_data.SetRandomInteger(key, length);
return this;
}
public Url AppendRandomFloat(string key, int length)
{
_data.SetRandomFloat(key, length);
return this;
}
public Url AppendUnixTimestamp(string key, int length, string prefix = "")
{
_data.SetUnixTimestamp(key, length, prefix);
return this;
}
public HttpWebRequest CreateRequest()
{
return Uri.CreateRequest();
}
}
}