1using Newtonsoft.Json;
2using System;
3using System.Collections.Generic;
4using System.Net.Http;
5using System.Text;
6using System.IO;
7using System.Net;
8using Newtonsoft.Json.Linq;
9using System.Data;
10
11namespace HunniApiExamples
12{
13 internal class Program
14 {
15 static void Main(string[] args)
16 {
17 string strToken = GetToken();
18
19 Console.WriteLine("API Version : " + GetAPIVersion(strToken));
20
21 Console.WriteLine("New Folder Id = " + CreateFolder(DateTime.Now.ToString("MMddyyHHmmss"), null, strToken));
22
23 List<HunniFolder> lRootFolders = GetChildFoldersByParentFolderId(null, strToken);
24 if (lRootFolders != null)
25 {
26 foreach (HunniFolder hfolder in lRootFolders)
27 {
28 Console.WriteLine("Folder Name/ID : " + hfolder.Name + "/" + hfolder.Id);
29 }
30 }
31
32 HunniTable ht = GetHunniTable(103, strToken);
33 if (ht != null)
34 {
35 Console.WriteLine("Table Name : " + ht.Name);
36 Console.WriteLine("Table Id : " + ht.Id);
37 if (ht.HunniColumns != null)
38 {
39 foreach (HunniColumn hc in ht.HunniColumns)
40 {
41 Console.WriteLine("Column Name : " + hc.Name);
42 Console.WriteLine("Column Type Id : " + hc.HunniColumnTypeId);
43
44 }
45 }
46 }
47
48 HunniView hv = GetHunniView(8, strToken);
49 if (hv != null)
50 {
51 Console.WriteLine("View Name : " + hv.Name);
52 Console.WriteLine("View Id : " + hv.Id);
53 if (hv.HunniColumns != null)
54 {
55 foreach (HunniColumn hc in hv.HunniColumns)
56 {
57 Console.WriteLine("Column Name : " + hc.Name);
58 Console.WriteLine("Column Type Id : " + hc.HunniColumnTypeId);
59
60 }
61 }
62 }
63
64 Console.WriteLine("Uploaded File Id : " + UploadFile(@"c:\temp\", "FileName.xlsx", strToken));
65
66 Console.WriteLine("Upload File To Table Cell Success : " + UploadFileToTableCellValue(@"c:\temp\", "FileName.xlsx", 86, strToken).ToString());
67
68 Console.WriteLine("New Table Id : " + CreateTable(DateTime.Now.ToString("MMddyyHHmmss"), 168, strToken));
69
70
71 List<HunniColumn> lHunniColumns = GetHunniColumnsByTableId(103, strToken);
72 if (lHunniColumns != null)
73 {
74 foreach (HunniColumn hc in lHunniColumns)
75 {
76 Console.WriteLine("Column Name : " + hc.Name);
77 Console.WriteLine("Column Type Id : " + hc.HunniColumnTypeId);
78
79 }
80 }
81
82
83 List<HunniColumnType> lHunniColumnTypes = GetHunniColumnTypes(strToken);
84 if (lHunniColumnTypes != null)
85 {
86 foreach (HunniColumnType hct in lHunniColumnTypes)
87 {
88 Console.WriteLine("Column Type Name : " + hct.Name);
89 Console.WriteLine("Column Type Id : " + hct.Id);
90
91 }
92 }
93
94
95 List<HunniAssetType> lHunniAssetTypes = GetHunniAssetTypes(strToken);
96 if (lHunniAssetTypes != null)
97 {
98 foreach (HunniAssetType hct in lHunniAssetTypes)
99 {
100 Console.WriteLine("Asset Type Name : " + hct.Name);
101 Console.WriteLine("Asset Type Id : " + hct.Id);
102
103 }
104 }
105
106 HunniFile hf = GetDetailsForFile(16, 1, 86, strToken);
107 if (hf != null)
108 {
109 Console.WriteLine("File Id : " + hf.Id);
110 Console.WriteLine("File Name : " + hf.Name);
111 }
112
113 Console.WriteLine("File Download Success : " + GetBinaryForFile(16, 1, 86, @"c:\temp\" + DateTime.Now.ToString("MMddyyHHmmss"), strToken).ToString());
114
115
116
117 List<HunniTable> lHunniTables = GetHunniTablesByFolderId(1, strToken);
118 if (lHunniTables != null)
119 {
120 foreach (HunniTable htable in lHunniTables)
121 {
122 Console.WriteLine("Table Name : " + htable.Name);
123 Console.WriteLine("Table Id : " + htable.Id);
124 if (htable.HunniColumns != null)
125 {
126 foreach (HunniColumn hc in htable.HunniColumns)
127 {
128 Console.WriteLine("Column Name : " + hc.Name);
129 Console.WriteLine("Column Type Id : " + hc.HunniColumnTypeId);
130
131 }
132 }
133 }
134 }
135
136
137 List<HunniView> lHunniViews = GetHunniViewsByFolderId(1, strToken);
138 if (lHunniViews != null)
139 {
140 foreach (HunniView hview in lHunniViews)
141 {
142 Console.WriteLine("View Name : " + hview.Name);
143 Console.WriteLine("View Id : " + hview.Id);
144 if (hview.HunniColumns != null)
145 {
146 foreach (HunniColumn hc in hview.HunniColumns)
147 {
148 Console.WriteLine("Column Name : " + hc.Name);
149 Console.WriteLine("Column Type Id : " + hc.HunniColumnTypeId);
150
151 }
152 }
153 }
154 }
155
156
157 OrganizationSubscription os = GetSubscriptionDetails(strToken);
158 if (os != null)
159 {
160 Console.WriteLine("Current Data Value Total : " + os.CurrentDataValueTotal);
161 Console.WriteLine("Data Value Limit : " + os.DataValueLimit);
162 Console.WriteLine("Organization Subscription Type : " + os.OrganizationSubscriptionType);
163 }
164
165
166 List<int> lRowIds = new List<int>();
167 lRowIds.Add(1);
168 lRowIds.Add(2);
169 Console.WriteLine("Row Delete Success : " + DeleteRowsFromTable(39, lRowIds, strToken).IsSuccess);
170
171
172 Console.WriteLine("Row Insert Id : " + DoSingleRowInsert(103, strToken).ToString());
173
174 Console.WriteLine("Singe Row Update Success : " + DoSingleRowUpdate(103, 1, strToken).IsSuccess.ToString());
175
176 Console.WriteLine("Bulk Insert Success : " + DoBulkRowInsert(103, strToken).IsSuccess.ToString());
177
178 Console.WriteLine("Bulk Update Success : " + DoBulkRowUpdate(103, strToken).IsSuccess.ToString());
179
180 DataTable dtTableData = GetDataForTable(103, strToken);
181 if (dtTableData != null)
182 {
183 foreach (DataColumn dc in dtTableData.Columns)
184 {
185 Console.WriteLine(dc.ColumnName);
186 }
187 }
188
189
190 DataTable dtViewData = GetDataForView(8, strToken);
191 if (dtViewData != null)
192 {
193 foreach (DataColumn dc in dtViewData.Columns)
194 {
195 Console.WriteLine(dc.ColumnName);
196 }
197 }
198 }
199
200 private static string GetToken()
201 {
202 string strToken = null;
203 string strClientId = "<client_id>";
204 string strClientSecret = "<client_secret>";
205
206 using (HttpClient client = new HttpClient())
207 {
208 var requestToken = new HttpRequestMessage
209 {
210 Method = HttpMethod.Post,
211 RequestUri = new Uri("https://api.hunni.io/oauth/token"),
212 Content = new StringContent("grant_type=client_credentials&client_id=" + strClientId + "&client_secret=" + strClientSecret)
213 };
214
215 using (HttpResponseMessage response = client.SendAsync(requestToken).Result)
216 {
217 using (HttpContent content = response.Content)
218 {
219 var json = content.ReadAsStringAsync().Result;
220 var result = JsonConvert.DeserializeObject<dynamic>(json);
221 if (result["error_description"] == null)
222 {
223 strToken = result.access_token;
224 }
225 }
226 }
227 }
228 return strToken;
229 }
230
231 public static HunniResult PostJsonToWebAPI(string url, string json, string token)
232 {
233 HttpClient client = new HttpClient();
234 var contentType = new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json");
235 client.DefaultRequestHeaders.Accept.Add(contentType);
236 client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
237 var contentData = new StringContent(json, Encoding.UTF8, "application/json");
238 var response = client.PostAsync(url, contentData);
239 if (response.Result.IsSuccessStatusCode)
240 {
241 var stringData = response.Result.Content.ReadAsStringAsync();
242 return JsonConvert.DeserializeObject<HunniResult>(stringData.Result);
243 }
244 else
245 {
246 return null;
247 }
248 }
249
250 public static string CallRestMethod(string url, string token)
251 {
252 try
253 {
254 var myUri = new Uri(url);
255 var myWebRequest = WebRequest.Create(myUri);
256 var myHttpWebRequest = (HttpWebRequest)myWebRequest;
257 myHttpWebRequest.Headers.Add("Authorization", "Bearer " + token);
258 var myWebResponse = myWebRequest.GetResponse();
259 Encoding enc = System.Text.Encoding.GetEncoding("utf-8");
260 StreamReader responseStream = new StreamReader(myWebResponse.GetResponseStream(), enc);
261 string result = string.Empty;
262 result = responseStream.ReadToEnd();
263 myWebResponse.Close();
264 return result;
265 }
266 catch
267 {
268 return null;
269 }
270 }
271
272
273 public static bool UploadFileToTableCellValue(string strFilePath, string strFileName, int tableId, string token)
274 {
275 int iFileId = 0;
276 var client = new HttpClient();
277 var request = new HttpRequestMessage(HttpMethod.Post, "https://api.hunni.io//v1/HunniFileBinary");
278 client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
279 var content = new MultipartFormDataContent();
280 content.Add(new StreamContent(File.OpenRead(strFilePath + strFileName)), "file", strFileName);
281 request.Content = content;
282 var response = client.SendAsync(request);
283 response.Result.Content.ReadAsStringAsync();
284 if (response.Result.IsSuccessStatusCode)
285 {
286 var stringData = response.Result.Content.ReadAsStringAsync();
287 HunniResult hr = JsonConvert.DeserializeObject<HunniResult>(stringData.Result);
288 if (hr.IsSuccess)
289 {
290 iFileId = hr.ObjectId;
291
292 HunniRow row = new HunniRow();
293 row.HunniTableId = tableId;
294
295 List<HunniRowColumnValue> lValues = new List<HunniRowColumnValue>();
296
297 HunniRowColumnValue value1 = new HunniRowColumnValue();
298 value1.HunniColumnId = 2152;
299 value1.Value = iFileId.ToString();
300 lValues.Add(value1);
301
302 row.HunniRowColumnValues = lValues;
303
304 var jHunniRow = JObject.Parse(JsonConvert.SerializeObject(row));
305
306 HunniResult hrHunniRow = PostJsonToWebAPI("https://api.hunni.io/v1/HunniRowSave", jHunniRow.ToString(), token);
307
308 if (hrHunniRow.IsSuccess)
309 {
310 return true;
311 }
312 else
313 {
314 return false;
315 }
316
317 }
318 else
319 {
320 return false;
321 }
322 }
323 else
324 {
325 return false;
326 }
327 }
328
329 public static bool GetBinaryForFile(int fileId, int assetTypeId, int assetId, string filePath, string token)
330 {
331 try
332 {
333 var myUri = new Uri("https://api.hunni.io/v1/HunniFileBinary/" + fileId + "/" + assetTypeId + "/" + assetId);
334 var myWebRequest = WebRequest.Create(myUri);
335 var myHttpWebRequest = (HttpWebRequest)myWebRequest;
336 myHttpWebRequest.Headers.Add("Authorization", "Bearer " + token);
337 myHttpWebRequest.Method = WebRequestMethods.Http.Get;
338 HttpWebResponse httpResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
339 Stream httpResponseStream = httpResponse.GetResponseStream();
340 if (File.Exists(filePath))
341 {
342 File.Delete(filePath);
343 }
344 using (var fs = File.Create(filePath))
345 {
346 httpResponseStream.CopyTo(fs);
347 }
348 return true;
349 }
350 catch
351 {
352 return false;
353 }
354 }
355
356 private static string GetAPIVersion(string token)
357 {
358 var myUri = new Uri("https://api.hunni.io/v1/HunniAPIVersion");
359 var myWebRequest = WebRequest.Create(myUri);
360 var myHttpWebRequest = (HttpWebRequest)myWebRequest;
361 myHttpWebRequest.Headers.Add("Authorization", "Bearer " + token);
362 var myWebResponse = myWebRequest.GetResponse();
363 Encoding enc = System.Text.Encoding.GetEncoding("utf-8");
364 StreamReader responseStream = new StreamReader(myWebResponse.GetResponseStream(), enc);
365 return responseStream.ReadToEnd().ToString();
366 }
367
368 public static int CreateFolder(string folderName, int? parentFolderId, string token)
369 {
370 HunniFolder hf = new HunniFolder();
371 hf.Name = folderName;
372 hf.ParentFolderId = parentFolderId;
373
374 var jHunniFolder = JObject.Parse(JsonConvert.SerializeObject(hf));
375 HunniResult hr = PostJsonToWebAPI("https://api.hunni.io/v1/HunniFolder", jHunniFolder.ToString(), token);
376 if (hr.IsSuccess)
377 {
378 return hr.ObjectId;
379 }
380 else
381 {
382 return -1;
383 }
384 }
385
386 public static List<HunniFolder> GetChildFoldersByParentFolderId(int? folderId, string token)
387 {
388 string jsFolders = "";
389 if (folderId == null)
390 {
391 jsFolders = CallRestMethod("https://api.hunni.io/v1/HunniFolders/null", token);
392 }
393 else
394 {
395 jsFolders = CallRestMethod("https://api.hunni.io/v1/HunniFolders/" + folderId, token);
396 }
397
398 return JsonConvert.DeserializeObject<List<HunniFolder>>(jsFolders);
399 }
400
401 public static HunniTable GetHunniTable(int tableId, string token)
402 {
403 string jsTable = CallRestMethod("https://api.hunni.io/v1/HunniTable/" + tableId, token);
404 return JsonConvert.DeserializeObject<HunniTable>(jsTable);
405 }
406
407 public static HunniView GetHunniView(int viewId, string token)
408 {
409 string jsView = CallRestMethod("https://api.hunni.io/v1/HunniView/" + viewId, token);
410 return JsonConvert.DeserializeObject<HunniView>(jsView);
411 }
412
413 public static int UploadFile(string strFilePath, string strFileName, string token)
414 {
415 var client = new HttpClient();
416 var request = new HttpRequestMessage(HttpMethod.Post, "https://api.hunni.io//v1/HunniFileBinary");
417 client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
418 var content = new MultipartFormDataContent();
419 content.Add(new StreamContent(File.OpenRead(strFilePath + strFileName)), "file", strFileName);
420 request.Content = content;
421 var response = client.SendAsync(request);
422 response.Result.Content.ReadAsStringAsync();
423 if (response.Result.IsSuccessStatusCode)
424 {
425 var stringData = response.Result.Content.ReadAsStringAsync();
426 HunniResult hr = JsonConvert.DeserializeObject<HunniResult>(stringData.Result);
427 if (hr.IsSuccess)
428 {
429 return hr.ObjectId;
430 }
431 else
432 {
433 return -1;
434 }
435 }
436 else
437 {
438 return -1;
439 }
440 }
441
442 public static int CreateTable(string tableName, int folderId, string token)
443 {
444 HunniTable ht = new HunniTable();
445 ht.Name = tableName;
446 ht.HunniFolderId = folderId;
447
448 List<HunniColumn> lHunniColumns = new List<HunniColumn>();
449 HunniColumn hcName = new HunniColumn();
450 hcName.Name = "Column 1 Name";
451 hcName.HunniColumnTypeId = 2;
452 hcName.IsRequired = true;
453 hcName.DisplayOrder = 1;
454 lHunniColumns.Add(hcName);
455
456 HunniColumn hcFile = new HunniColumn();
457 hcFile.HunniColumnTypeId = 5;
458 hcFile.Name = "Column 2 File";
459 hcFile.IsRequired = false;
460 hcFile.DisplayOrder = 1;
461 lHunniColumns.Add(hcFile);
462
463 ht.HunniColumns = lHunniColumns;
464
465 var jHunniTable = JObject.Parse(JsonConvert.SerializeObject(ht));
466 HunniResult hr = PostJsonToWebAPI("https://api.hunni.io/v1/HunniTable", jHunniTable.ToString(), token);
467 if (hr.IsSuccess)
468 {
469 return hr.ObjectId;
470 }
471 else
472 {
473 return -1;
474 }
475 }
476
477 public static List<HunniColumn> GetHunniColumnsByTableId(int tableId, string token)
478 {
479 string jsColumns = CallRestMethod("https://api.hunni.io/v1/HunniColumns/" + tableId, token);
480 return JsonConvert.DeserializeObject<List<HunniColumn>>(jsColumns);
481 }
482
483 public static List<HunniColumnType> GetHunniColumnTypes(string token)
484 {
485 string jsColumnTypes = CallRestMethod("https://api.hunni.io/v1/HunniColumnTypes", token);
486 return JsonConvert.DeserializeObject<List<HunniColumnType>>(jsColumnTypes);
487 }
488
489 public static List<HunniAssetType> GetHunniAssetTypes(string token)
490 {
491 string jsAssetTypes = CallRestMethod("https://api.hunni.io/v1/HunniAssetTypes", token);
492 return JsonConvert.DeserializeObject<List<HunniAssetType>>(jsAssetTypes);
493 }
494
495 public static HunniFile GetDetailsForFile(int fileId, int assetTypeId, int assetId, string token)
496 {
497 string jsFile = CallRestMethod("https://api.hunni.io/v1/HunniFileDetail/" + fileId + "/" + assetTypeId + "/" + assetId, token);
498 return JsonConvert.DeserializeObject<HunniFile>(jsFile);
499 }
500
501 public static List<HunniTable> GetHunniTablesByFolderId(int folderId, string token)
502 {
503 string jsTables = CallRestMethod("https://api.hunni.io/v1/HunniFolderTables/" + folderId, token);
504 return JsonConvert.DeserializeObject<List<HunniTable>>(jsTables);
505 }
506
507 public static List<HunniView> GetHunniViewsByFolderId(int folderId, string token)
508 {
509 string jsViews = CallRestMethod("https://api.hunni.io/v1/HunniFolderViews/" + folderId, token);
510 return JsonConvert.DeserializeObject<List<HunniView>>(jsViews);
511 }
512
513 public static OrganizationSubscription GetSubscriptionDetails(string token)
514 {
515 string jsOrganizationSubscription = CallRestMethod("https://api.hunni.io/v1/HunniOrganizationSubscription", token);
516 return JsonConvert.DeserializeObject<OrganizationSubscription>(jsOrganizationSubscription);
517 }
518
519 public static HunniResult DeleteRowsFromTable(int tableId, List<int> rowIds, string token)
520 {
521 HunniRowBulkDeletePayload payload = new HunniRowBulkDeletePayload();
522 payload.TableId = tableId;
523 payload.RowIds = rowIds;
524 var jBulkDeletePayload = JObject.Parse(JsonConvert.SerializeObject(payload));
525 return PostJsonToWebAPI("https://api.hunni.io/v1/HunniRowDelete", jBulkDeletePayload.ToString(), token);
526 }
527
528 public static int DoSingleRowInsert(int tableId, string token)
529 {
530 HunniRow hr = new HunniRow();
531 hr.HunniTableId = tableId;
532
533 List<HunniRowColumnValue> lValues = new List<HunniRowColumnValue>();
534
535 HunniRowColumnValue value1 = new HunniRowColumnValue();
536 value1.HunniColumnId = 2375;
537 value1.Value = "Column 1 Value";
538 lValues.Add(value1);
539
540 HunniRowColumnValue value2 = new HunniRowColumnValue();
541 value2.HunniColumnId = 2376;
542 value2.Value = "Column 2 Value";
543 lValues.Add(value2);
544
545 hr.HunniRowColumnValues = lValues;
546
547 var jHunniRow = JObject.Parse(JsonConvert.SerializeObject(hr));
548
549 HunniResult hrHunniRow = PostJsonToWebAPI("https://api.hunni.io/v1/HunniRowSave", jHunniRow.ToString(), token);
550
551 if (hrHunniRow.IsSuccess)
552 {
553 return hrHunniRow.ObjectId;
554 }
555 else
556 {
557 return -1;
558 }
559 }
560
561 public static HunniResult DoSingleRowUpdate(int tableId, int rowId, string token)
562 {
563 HunniRow hr = new HunniRow();
564 hr.HunniTableId = tableId;
565 hr.Id = rowId;
566
567 List<HunniRowColumnValue> lValues = new List<HunniRowColumnValue>();
568
569 HunniRowColumnValue value1 = new HunniRowColumnValue();
570 value1.HunniColumnId = 2375;
571 value1.Value = "Column 1 Value";
572 lValues.Add(value1);
573
574 HunniRowColumnValue value2 = new HunniRowColumnValue();
575 value2.HunniColumnId = 2376;
576 value2.Value = "Column 2 Value";
577 lValues.Add(value2);
578
579 hr.HunniRowColumnValues = lValues;
580
581 var jHunniRow = JObject.Parse(JsonConvert.SerializeObject(hr));
582
583 return PostJsonToWebAPI("https://api.hunni.io/v1/HunniRowSave", jHunniRow.ToString(), token);
584 }
585
586 public static HunniResult DoBulkRowInsert(int tableId, string token)
587 {
588 List<HunniRow> lRows = new List<HunniRow>();
589
590 for (int i = 0; i < 10; i++)
591 {
592 HunniRow hr = new HunniRow();
593 hr.HunniTableId = tableId;
594
595 List<HunniRowColumnValue> lValues = new List<HunniRowColumnValue>();
596
597 HunniRowColumnValue value1 = new HunniRowColumnValue();
598 value1.HunniColumnId = 2375;
599 value1.Value = "Column 1 Value";
600 lValues.Add(value1);
601
602 HunniRowColumnValue value2 = new HunniRowColumnValue();
603 value2.HunniColumnId = 2376;
604 value2.Value = "Column 2 Value";
605 lValues.Add(value2);
606
607 hr.HunniRowColumnValues = lValues;
608 lRows.Add(hr);
609 }
610
611 var jHunniRows = JArray.Parse(JsonConvert.SerializeObject(lRows));
612
613 return PostJsonToWebAPI("https://api.hunni.io/v1/HunniRowSaveBulk", jHunniRows.ToString(), token);
614 }
615
616 public static HunniResult DoBulkRowUpdate(int tableId, string token)
617 {
618 List<HunniRow> lRows = new List<HunniRow>();
619
620 for (int i = 0; i < 10; i++)
621 {
622 HunniRow hr = new HunniRow();
623 hr.HunniTableId = tableId;
624 hr.Id = i;
625
626 List<HunniRowColumnValue> lValues = new List<HunniRowColumnValue>();
627
628 HunniRowColumnValue value1 = new HunniRowColumnValue();
629 value1.HunniColumnId = 2375;
630 value1.Value = "Column 1 Value";
631 lValues.Add(value1);
632
633 HunniRowColumnValue value2 = new HunniRowColumnValue();
634 value2.HunniColumnId = 2376;
635 value2.Value = "Column 2 Value";
636 lValues.Add(value2);
637
638 hr.HunniRowColumnValues = lValues;
639 lRows.Add(hr);
640 }
641
642 var jHunniRows = JArray.Parse(JsonConvert.SerializeObject(lRows));
643
644 return PostJsonToWebAPI("https://api.hunni.io/v1/HunniRowSaveBulk", jHunniRows.ToString(), token);
645 }
646
647 public static DataTable GetDataForTable(int tableId, string token)
648 {
649 string jsHoneyData = CallRestMethod("https://api.hunni.io/v1/HunniTableData/" + tableId, token);
650 return JsonConvert.DeserializeObject<System.Data.DataTable>(jsHoneyData);
651 }
652
653 public static DataTable GetDataForView(int viewId, string token)
654 {
655 string jsHoneyData = CallRestMethod("https://api.hunni.io/v1/HunniViewData/" + viewId, token);
656 return JsonConvert.DeserializeObject<System.Data.DataTable>(jsHoneyData);
657 }
658
659 public class HunniRow
660 {
661 public enum HunniAssetType { Table, FileGroup }
662 public int Id;
663 public int HunniAssetId;
664 public List<HunniRowColumnValue> HunniRowColumnValues;
665 public HunniAssetType AssetType;
666 }
667
668 public class HunniRowColumnValue
669 {
670 public int HunniRowId;
671 public int HunniColumnId;
672 public string Value;
673 }
674
675 public class OrganizationSubscription
676 {
677 public enum OrganizationSubscriptionType { Free, Individual, Business }
678 public OrganizationSubscriptionType SubscriptionType;
679 public Int64 DataValueLimit;
680 public Int64 CurrentDataValueTotal;
681 }
682
683 public class HunniRowBulkDeletePayload
684 {
685 public int TableId;
686 public List<int> RowIds;
687 }
688
689 public class HunniFile
690 {
691 public int Id;
692 public string Name;
693 public Int64 Length;
694 }
695
696 public class HunniAssetType
697 {
698 public int Id;
699 public string Name;
700 }
701
702 public class HunniColumnType
703 {
704 public int Id;
705 public string Name;
706 }
707
708 public class HunniTable
709 {
710 public enum HunniTableAccess { Owner, Write, Read }
711 public int Id;
712 public string Name;
713 public int HunniFolderId;
714 public HunniTableAccess Access;
715 public string Description;
716 public DateTime LastUpdatedOn;
717 public List<HunniColumn> HunniColumns;
718 }
719
720 public class HunniColumn
721 {
722 public int Id;
723 public int HunniAssetId;
724 public int AssetTypeId;
725 public string Name;
726 public int HunniColumnTypeId;
727 public bool IsRequired;
728 public int DisplayOrder;
729 }
730
731 public class HunniView
732 {
733 public enum HunniViewAccess { Owner, Write, Read }
734 public int Id;
735 public string Name;
736 public HunniViewAccess Access;
737 public string Description;
738 public DateTime LastUpdatedOn;
739 public List<HunniColumn> HunniColumns;
740 }
741
742 public class HunniFolder
743 {
744 public int Id;
745 public string Name;
746 public string IconURL;
747 public bool IsShared;
748 public bool IsOwnOrgShared;
749 public int? ParentFolderId;
750 }
751
752 public class HunniResult
753 {
754 public string Message;
755 public bool IsSuccess;
756 public int ObjectId;
757 }
758 }
759}
760