/
DataCenter.cs
158 lines (148 loc) · 5.08 KB
/
DataCenter.cs
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
using System.Linq;
using Com.Zoho.Crm.API.Util;
namespace Com.Zoho.Crm.API.Dc
{
/// <summary>
/// The abstract class represents the properties of Zoho CRM DataCenter.
/// </summary>
public abstract class DataCenter
{
/// <summary>
/// This method to get accounts URL. URL to be used when calling an OAuth accounts.
/// </summary>
/// <returns>A String representing the accounts URL.</returns>
public abstract string GetIAMUrl();
/// <summary>
/// This method to get File Upload URL.
/// </summary>
/// <returns>A String representing the FileUpload URL.</returns>
public abstract string GetFileUploadUrl();
/// <summary>
/// The abstract class represents the properties of Zoho CRM Environment.
/// </summary>
public class Environment
{
private string url;
private string accountsUrl;
private string fileUploadUrl;
public Environment(string url, string accountsUrl, string fileUploadUrl)
{
this.accountsUrl = accountsUrl;
this.url = url;
this.fileUploadUrl = fileUploadUrl;
}
/// <summary>
/// This method to get Zoho CRM API URL.
/// </summary>
/// <returns>A String representing the Zoho CRM API URL.</returns>
public string GetUrl()
{
return this.url;
}
/// <summary>
/// This method to get Zoho CRM Accounts URL.
/// </summary>
/// <returns>A String representing the accounts URL.</returns>
public string GetAccountsUrl()
{
return this.accountsUrl;
}
/// <summary>
/// This method to get Zoho CRM File Upload URL.
/// </summary>
/// <returns>A String representing the FileUpload URL.</returns>
public string GetFileUploadUrl()
{
return this.fileUploadUrl;
}
}
public static Environment Get(string config)
{
if(Constants.US_DATACENTER.Any(a => a.Equals(config)))
{
if(config.Contains(Constants.SANDBOX))
{
return USDataCenter.SANDBOX;
}
else if(config.Contains(Constants.DEVELOPER))
{
return USDataCenter.DEVELOPER;
}
return USDataCenter.PRODUCTION;
}
if (Constants.JP_DATACENTER.Any(a=>a.Equals(config)))
{
if (config.Contains(Constants.SANDBOX))
{
return JPDataCenter.SANDBOX;
}
else if (config.Contains(Constants.DEVELOPER))
{
return JPDataCenter.DEVELOPER;
}
return JPDataCenter.PRODUCTION;
}
if (Constants.IN_DATACENTER.Any(a=>a.Equals(config)))
{
if (config.Contains(Constants.SANDBOX))
{
return INDataCenter.SANDBOX;
}
else if (config.Contains(Constants.DEVELOPER))
{
return INDataCenter.DEVELOPER;
}
return INDataCenter.PRODUCTION;
}
else if (Constants.EU_DATACENTER.Any(a=>a.Equals(config)))
{
if (config.Contains(Constants.SANDBOX))
{
return EUDataCenter.SANDBOX;
}
else if (config.Contains(Constants.DEVELOPER))
{
return EUDataCenter.DEVELOPER;
}
return EUDataCenter.PRODUCTION;
}
else if (Constants.CN_DATACENTER.Any(a=>a.Equals(config)))
{
if (config.Contains(Constants.SANDBOX))
{
return CNDataCenter.SANDBOX;
}
else if (config.Contains(Constants.DEVELOPER))
{
return CNDataCenter.DEVELOPER;
}
return CNDataCenter.PRODUCTION;
}
else if (Constants.AU_DATACENTER.Any(a=>a.Equals(config)))
{
if (config.Contains(Constants.SANDBOX))
{
return AUDataCenter.SANDBOX;
}
else if (config.Contains(Constants.DEVELOPER))
{
return AUDataCenter.DEVELOPER;
}
return AUDataCenter.PRODUCTION;
}
else if (Constants.CA_DATACENTER.Any(a => a.Equals(config)))
{
if (config.Contains(Constants.SANDBOX))
{
return CADataCenter.SANDBOX;
}
else if (config.Contains(Constants.DEVELOPER))
{
return CADataCenter.DEVELOPER;
}
return CADataCenter.PRODUCTION;
}
return null;
}
}
}