diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs
index 25836550..a169cb08 100644
--- a/server/AyaNova/util/AySchema.cs
+++ b/server/AyaNova/util/AySchema.cs
@@ -20,10 +20,10 @@ namespace AyaNova.Util
/////////// CHANGE THIS ON NEW SCHEMA UPDATE ////////////////////
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::PrepareDatabaseForSeeding WHEN NEW TABLES ADDED!!!!
- private const int DESIRED_SCHEMA_LEVEL = 9;
+ private const int DESIRED_SCHEMA_LEVEL = 8;
- internal const long EXPECTED_COLUMN_COUNT = 108;
- internal const long EXPECTED_INDEX_COUNT = 25;
+ internal const long EXPECTED_COLUMN_COUNT = 93;
+ internal const long EXPECTED_INDEX_COUNT = 20;
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::PrepareDatabaseForSeeding WHEN NEW TABLES ADDED!!!!
diff --git a/test/raven-integration/Tags/TagCrud.cs b/test/raven-integration/Tags/TagCrud.cs
deleted file mode 100644
index b53ec074..00000000
--- a/test/raven-integration/Tags/TagCrud.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-using System;
-using Xunit;
-using Newtonsoft.Json.Linq;
-using FluentAssertions;
-using System.Collections.Generic;
-using System.Collections.Concurrent;
-
-namespace raven_integration
-{
-
- public class TagCrud
- {
-
- ///
- /// Test all CRUD routes for a widget
- ///
- [Fact]
- public async void CRUD()
- {
- /*
- {
- "name": "TestTag"
- }
- */
-
- //CREATE
- dynamic w1 = new JObject();
- w1.name = Util.Uniquify("TeStTaG");
-
-
- ApiResponse a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), w1.ToString());
- Util.ValidateDataReturnResponseOk(a);
- long tagId = a.ObjectResponse["data"]["id"].Value();
- string tagName = a.ObjectResponse["data"]["name"].Value();
- tagName.Should().StartWith("testtag");
-
-
- //RETRIEVE
- /*
- {
- "data": {
- "id": 24,
- "created": "2018-03-28T21:07:41.9703503Z",
- "concurrencyToken": 9502,
- "ownerId": 1,
- "name": "یونیکُد چیست؟"
- }
- }
- */
- //Get one
- a = await Util.GetAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateDataReturnResponseOk(a);
- a.ObjectResponse["data"]["name"].Value().Should().StartWith("testtag");
-
- //UPDATE
-
- //PUT
- w1.Id = tagId;
- w1.name = Util.Uniquify("PutTestTag");
- w1.created = DateTime.UtcNow.ToString("s", System.Globalization.CultureInfo.InvariantCulture);
- w1.concurrencyToken = a.ObjectResponse["data"]["concurrencyToken"].Value();
- w1.OwnerId = 1L;
-
-
- ApiResponse PUTTestResponse = await Util.PutAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull"), w1.ToString());
- Util.ValidateHTTPStatusCode(PUTTestResponse, 200);
-
- //check PUT worked
- ApiResponse checkPUTWorked = await Util.GetAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateNoErrorInResponse(checkPUTWorked);
- checkPUTWorked.ObjectResponse["data"]["name"].Value().Should().Be(w1.name.ToString().ToLowerInvariant().Replace(" ", "-"));
- uint concurrencyToken = PUTTestResponse.ObjectResponse["data"]["concurrencyToken"].Value();
-
- //PATCH
- var newName = Util.Uniquify("PatchUpdate");
- string patchJson = "[{\"value\": \"" + newName + "\",\"path\": \"/name\",\"op\": \"replace\"}]";
- ApiResponse PATCHTestResponse = await Util.PatchAsync("Tag/" + tagId.ToString() + "/" + concurrencyToken.ToString(), await Util.GetTokenAsync("BizAdminFull"), patchJson);
- Util.ValidateHTTPStatusCode(PATCHTestResponse, 200);
-
- //check PATCH worked
- ApiResponse checkPATCHWorked = await Util.GetAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateNoErrorInResponse(checkPATCHWorked);
- checkPATCHWorked.ObjectResponse["data"]["name"].Value().Should().Be(newName.ToLowerInvariant().Replace(" ", "-"));
-
- // //DELETE
- ApiResponse DELETETestResponse = await Util.DeleteAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(DELETETestResponse, 204);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- //==================================================
-
- }//eoc
-}//eons
diff --git a/test/raven-integration/Tags/TagGroupOps.cs b/test/raven-integration/Tags/TagGroupOps.cs
deleted file mode 100644
index d29ddf40..00000000
--- a/test/raven-integration/Tags/TagGroupOps.cs
+++ /dev/null
@@ -1,138 +0,0 @@
-using System;
-using Xunit;
-using Newtonsoft.Json.Linq;
-using FluentAssertions;
-using System.Collections.Generic;
-using System.Collections.Concurrent;
-
-namespace raven_integration
-{
-
- public class TagGroupOps
- {
-
-
- ///
- /// Test TagGroup operations
- ///
- [Fact]
- public async void GroupOpsShouldWork()
- {
-
- //CREATE TAG1
- dynamic D = new JObject();
- D.name = Util.Uniquify("test-tag1-4-tag-group");
- ApiResponse R = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), D.ToString());
- Util.ValidateDataReturnResponseOk(R);
- long TestTag1Id = R.ObjectResponse["data"]["id"].Value();
-
-
- //CREATE TAG2
- D.name = Util.Uniquify("test-tag2-4-tag-group");
- R = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), D.ToString());
- Util.ValidateDataReturnResponseOk(R);
- long TestTag2Id = R.ObjectResponse["data"]["id"].Value();
-
-
- //CREATE TAG-GROUP
- D = new JObject();
- D.name = Util.Uniquify("test-tag-group-for-ops");
-
- R = await Util.PostAsync("TagGroup", await Util.GetTokenAsync("BizAdminFull"), D.ToString());
- Util.ValidateDataReturnResponseOk(R);
- long TestTagGroupId = R.ObjectResponse["data"]["id"].Value();
-
-
- //ADD TEST TAGS TO GROUP
- D = new JObject();
- D.tagId = TestTag1Id;
- D.tagGroupId = TestTagGroupId;
- R = await Util.PostAsync("TagGroupMap", await Util.GetTokenAsync("BizAdminFull"), D.ToString());
- Util.ValidateDataReturnResponseOk(R);
-
- D.tagId = TestTag2Id;
- D.tagGroupId = TestTagGroupId;
- R = await Util.PostAsync("TagGroupMap", await Util.GetTokenAsync("BizAdminFull"), D.ToString());
- Util.ValidateDataReturnResponseOk(R);
-
-
- //GET PICKLIST OF TAGS FOR GROUP
- R = await Util.GetAsync("TagGroup/TagsInGroupPickList/" + TestTagGroupId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateDataReturnResponseOk(R);
-
- //VERIFY CANT DELETE TAG IN GROUP
- R = await Util.DeleteAsync("Tag/" + TestTag2Id.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateErrorCodeResponse(R, 2200, 400);
-
-
- //TAG ITEM WITH GROUP OF TAGS
- //CREATE WIDGET
- D = new JObject();
- D.name = Util.Uniquify("WIDGET_TAG_GROUP_TAG_TEST");
- D.created = DateTime.Now.ToString();
- D.dollarAmount = 1.11m;
- D.active = true;
- D.roles = 0;
-
- R = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), D.ToString());
- Util.ValidateDataReturnResponseOk(R);
- long WidgetId = R.ObjectResponse["data"]["id"].Value();
-
-
-
- //CREATE TAGMAP (tag the widget)
- /*
- {
- "tagGroupId": 0,
- "tagToObjectId": 0,
- "tagToObjectType": 0
- }
- */
- D = new JObject();
- D.tagGroupId = TestTagGroupId;
- D.tagToObjectId = WidgetId;
- D.tagToObjectType = 2;//widget
-
-
- R = await Util.PostAsync("TagGroup/TagObject", await Util.GetTokenAsync("BizAdminFull"), D.ToString());
- Util.ValidateDataReturnResponseOk(R);
- ((JArray)R.ObjectResponse["data"]).Count.Should().Be(2);
-
-
- //VALIDATE HAS TAGS FROM GROUP
- D = new JObject();
- D.objectId = WidgetId;
- D.objectType = 2;//widget
- R = await Util.GetAsync("TagMap/TagsOnObject/", await Util.GetTokenAsync("BizAdminFull"), D.ToString());
- Util.ValidateDataReturnResponseOk(R);
- Util.ValidateHTTPStatusCode(R, 200);
- //there should be 2 of them
- ((JArray)R.ObjectResponse["data"]).Count.Should().Be(2);
-
-
- //DELETE TAG-GROUP
- R = await Util.DeleteAsync("TagGroup/" + TestTagGroupId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(R, 204);
-
- //DELETE WIDGET (which will delete tagmaps as well)
- R = await Util.DeleteAsync("Widget/" + WidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(R, 204);
-
- //VERIFY CAN NOW DELETE TAG IN GROUP
- R = await Util.DeleteAsync("Tag/" + TestTag2Id.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(R, 204);
-
- }
-
-
-
-
-
-
-
-
-
- //==================================================
-
- }//eoc
-}//eons
diff --git a/test/raven-integration/Tags/TagLists.cs b/test/raven-integration/Tags/TagLists.cs
deleted file mode 100644
index db893f22..00000000
--- a/test/raven-integration/Tags/TagLists.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-using System;
-using Xunit;
-using Newtonsoft.Json.Linq;
-using FluentAssertions;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using System.Collections.Concurrent;
-
-namespace raven_integration
-{
-
- public class TagLists
- {
-
- ///
- ///
- ///
- [Fact]
- public async void PickListSearchRouteShouldWorkAsExpected()
- {
- List createdTagList = new List();
-
- //CREATE
- dynamic d = new JObject();
-
-
- d.name = Util.Uniquify("Apple");
- ApiResponse a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- createdTagList.Add(a.ObjectResponse["data"]["id"].Value());
-
- d.name = Util.Uniquify("Applesauce");
- a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- createdTagList.Add(a.ObjectResponse["data"]["id"].Value());
-
- d.name = Util.Uniquify("Apple-Tar-Tar");
- a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- createdTagList.Add(a.ObjectResponse["data"]["id"].Value());
-
- d.name = Util.Uniquify("Apple-Tini");
- a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- createdTagList.Add(a.ObjectResponse["data"]["id"].Value());
-
- d.name = Util.Uniquify("Apple-Pie");
- a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- createdTagList.Add(a.ObjectResponse["data"]["id"].Value());
-
- d.name = Util.Uniquify("AppleJack");
- a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- createdTagList.Add(a.ObjectResponse["data"]["id"].Value());
-
-
- //Get all
- a = await Util.GetAsync("Tag/picklist?Offset=1&Limit=25&q=ApPlE", await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
- //there should be at least 5 of them
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(4);
-
-
- //Delete them all here (just a cleanup)
- foreach (long lId in createdTagList)
- {
- a = await Util.DeleteAsync("Tag/" + lId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- }
-
-
-
-
- //==================================================
-
- }//eoc
-}//eons
diff --git a/test/raven-integration/Tags/TagMapOps.cs b/test/raven-integration/Tags/TagMapOps.cs
deleted file mode 100644
index c02c0806..00000000
--- a/test/raven-integration/Tags/TagMapOps.cs
+++ /dev/null
@@ -1,375 +0,0 @@
-using System;
-using Xunit;
-using Newtonsoft.Json.Linq;
-using FluentAssertions;
-using System.Collections.Generic;
-using System.Collections.Concurrent;
-
-namespace raven_integration
-{
-
- public class TagMapOps
- {
-
- ///
- /// Test tagmap map unmap and etc
- ///
- [Fact]
- public async void MapUnmapShouldWork()
- {
- /*
- {
- "name": "TestTag"
- }
- */
-
- //CREATE TAG
- dynamic d = new JObject();
- d.name = Util.Uniquify("test-tag-4-widget");
-
-
- ApiResponse a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- long tagId = a.ObjectResponse["data"]["id"].Value();
-
-
- //CREATE WIDGET
- dynamic w = new JObject();
- w.name = Util.Uniquify("WIDGET_TAG");
- w.created = DateTime.Now.ToString();
- w.dollarAmount = 1.11m;
- w.active = true;
- w.roles = 0;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- long widgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE TAGMAP (tag the widget)
- /*
- {
- "tagId": 0,
- "tagToObjectId": 0,
- "tagToObjectType": 0
- }
- */
- dynamic tm = new JObject();
- tm.tagId = tagId;
- tm.tagToObjectId = widgetId;
- tm.tagToObjectType = 2;//widget
-
-
- a = await Util.PostAsync("TagMap", await Util.GetTokenAsync("BizAdminFull"), tm.ToString());
- Util.ValidateDataReturnResponseOk(a);
- long tagMapId = a.ObjectResponse["data"]["id"].Value();
-
- //VERIFY TAGMAP
- a = await Util.GetAsync("TagMap/" + tagMapId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateDataReturnResponseOk(a);
- a.ObjectResponse["data"]["id"].Value().Should().Be(tagMapId);
-
-
- //ATTEMPT TO DELETE TAG THAT HAS TAGMAP SHOULD FAIL with 2200 / 400
- a = await Util.DeleteAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateViolatesReferentialIntegrityError(a);
-
- //DELETE TAGMAP
- a = await Util.DeleteAsync("TagMap/" + tagMapId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- //DELETE TAG
- a = await Util.DeleteAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- //DELETE WIDGET
- a = await Util.DeleteAsync("Widget/" + widgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void TagMapShouldDeleteWhenParentDeletes()
- {
- /*
- {
- "name": "TestTag"
- }
- */
-
- //CREATE TAG
- dynamic d = new JObject();
- d.name = Util.Uniquify("test-unmap-tag-4-widget");
-
-
- ApiResponse a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- long tagId = a.ObjectResponse["data"]["id"].Value();
-
-
- //CREATE WIDGET
- dynamic w = new JObject();
- w.name = Util.Uniquify("WIDGET_TAG_AUTO_UNMAP");
- w.created = DateTime.Now.ToString();
- w.dollarAmount = 1.11m;
- w.active = true;
- w.roles = 0;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- long widgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE TAGMAP (tag the widget)
- /*
- {
- "tagId": 0,
- "tagToObjectId": 0,
- "tagToObjectType": 0
- }
- */
- dynamic tm = new JObject();
- tm.tagId = tagId;
- tm.tagToObjectId = widgetId;
- tm.tagToObjectType = 2;//widget
-
-
- a = await Util.PostAsync("TagMap", await Util.GetTokenAsync("BizAdminFull"), tm.ToString());
- Util.ValidateDataReturnResponseOk(a);
- long tagMapId = a.ObjectResponse["data"]["id"].Value();
-
- //VERIFY TAGMAP
- a = await Util.GetAsync("TagMap/" + tagMapId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateDataReturnResponseOk(a);
- a.ObjectResponse["data"]["id"].Value().Should().Be(tagMapId);
-
-
- //DELETE PARENT (WIDGET)
- a = await Util.DeleteAsync("Widget/" + widgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- //VERIFY TAGMAP GONE
- a = await Util.GetAsync("TagMap/" + tagMapId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateResponseNotFound(a);
-
-
- ////////////////////////
- //CLEANUP
-
- //DELETE TAG
- a = await Util.DeleteAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void TagMapListForObject()
- {
- List createdTagList = new List();
-
- //CREATE a bunch of tags
- dynamic d = new JObject();
-
-
- d.name = Util.Uniquify("Red");
- ApiResponse a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- createdTagList.Add(a.ObjectResponse["data"]["id"].Value());
-
- d.name = Util.Uniquify("red-green");
- a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- createdTagList.Add(a.ObjectResponse["data"]["id"].Value());
-
- d.name = Util.Uniquify("red-rum");
- a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- createdTagList.Add(a.ObjectResponse["data"]["id"].Value());
-
- d.name = Util.Uniquify("red-dit");
- a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- createdTagList.Add(a.ObjectResponse["data"]["id"].Value());
-
- d.name = Util.Uniquify("red-tailed-hawk");
- a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateDataReturnResponseOk(a);
- createdTagList.Add(a.ObjectResponse["data"]["id"].Value());
-
-
- //Create a widget
- dynamic w = new JObject();
- w.name = Util.Uniquify("WIDGET_4_TAG_LIST_TEST");
- w.created = DateTime.Now.ToString();
- w.dollarAmount = 1.11m;
- w.active = true;
- w.roles = 0;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- long widgetId = a.ObjectResponse["data"]["id"].Value();
-
-
- //Tag all the tags to the widget
- dynamic tm = new JObject();
- foreach (long tagId in createdTagList)
- {
- tm.tagId = tagId;
- tm.tagToObjectId = widgetId;
- tm.tagToObjectType = 2;//widget
-
- a = await Util.PostAsync("TagMap", await Util.GetTokenAsync("BizAdminFull"), tm.ToString());
- Util.ValidateDataReturnResponseOk(a);
- }
-
- //GET TAGS FOR WIDGET
- dynamic tid = new JObject();
- tid.objectId = widgetId;
- tid.objectType = 2;//widget
- a = await Util.GetAsync("TagMap/TagsOnObject/", await Util.GetTokenAsync("BizAdminFull"), tid.ToString());
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
- //there should be at least 5 of them
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterOrEqualTo(createdTagList.Count);
-
- //delete widget (which will delete tagmaps as well)
- a = await Util.DeleteAsync("Widget/" + widgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
-
- //CLEANUP TAGS
- foreach (long lId in createdTagList)
- {
- a = await Util.DeleteAsync("Tag/" + lId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- }
-
-
-
- ///
- /// Test tagging a bunch of items then mass untag
- ///
- [Fact]
- public async void UnTagEverythingWorks()
- {
- /*
- {
- "name": "TestTag"
- }
- */
-
- //CREATE TAG
- dynamic D = new JObject();
- D.name = Util.Uniquify("test-tag-4-untag");
-
-
- ApiResponse R = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), D.ToString());
- Util.ValidateDataReturnResponseOk(R);
- long TestTagId = R.ObjectResponse["data"]["id"].Value();
-
-
- //CREATE WIDGET 1
- dynamic D2 = new JObject();
- D2.name = Util.Uniquify("WIDGET_UNTAG_TEST1");
- D2.created = DateTime.Now.ToString();
- D2.dollarAmount = 1.11m;
- D2.active = true;
- D2.roles = 0;
-
- R = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), D2.ToString());
- Util.ValidateDataReturnResponseOk(R);
- long Widget1Id = R.ObjectResponse["data"]["id"].Value();
-
- //CREATE WIDGET 2
- //D2 = new JObject();
- D2.name = Util.Uniquify("WIDGET_UNTAG_TEST2");
- D2.created = DateTime.Now.ToString();
- D2.dollarAmount = 1.11m;
- D2.active = true;
- D2.roles = 0;
-
- R = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), D2.ToString());
- Util.ValidateDataReturnResponseOk(R);
- long Widget2Id = R.ObjectResponse["data"]["id"].Value();
-
- //TAGMAP to Widget 1
- /*
- {
- "tagId": 0,
- "tagToObjectId": 0,
- "tagToObjectType": 0
- }
- */
- dynamic D3 = new JObject();
- D3.tagId = TestTagId;
- D3.tagToObjectId = Widget1Id;
- D3.tagToObjectType = 2;//widget
-
-
- R = await Util.PostAsync("TagMap", await Util.GetTokenAsync("BizAdminFull"), D3.ToString());
- Util.ValidateDataReturnResponseOk(R);
- long TagMap1Id = R.ObjectResponse["data"]["id"].Value();
-
- //VERIFY TAGMAP
- R = await Util.GetAsync("TagMap/" + TagMap1Id.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateDataReturnResponseOk(R);
- R.ObjectResponse["data"]["id"].Value().Should().Be(TagMap1Id);
- R.ObjectResponse["data"]["tagToObjectId"].Value().Should().Be(Widget1Id);
-
-
- //TAGMAP to Widget 2
- D3.tagId = TestTagId;
- D3.tagToObjectId = Widget2Id;
- D3.tagToObjectType = 2;//widget
-
-
- R = await Util.PostAsync("TagMap", await Util.GetTokenAsync("BizAdminFull"), D3.ToString());
- Util.ValidateDataReturnResponseOk(R);
- long TagMap2Id = R.ObjectResponse["data"]["id"].Value();
-
- //VERIFY TAGMAP
- R = await Util.GetAsync("TagMap/" + TagMap2Id.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateDataReturnResponseOk(R);
- R.ObjectResponse["data"]["id"].Value().Should().Be(TagMap2Id);
- R.ObjectResponse["data"]["tagToObjectId"].Value().Should().Be(Widget2Id);
-
- //UNTAG-ALL
- R = await Util.PostAsync("Tag/UntagAll/" + TestTagId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(R, 204);
-
-
- //DELETE TAG
- //This should now work because untag all freed it up
- R = await Util.DeleteAsync("Tag/" + TestTagId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(R, 204);
-
- //DELETE WIDGETS
- R = await Util.DeleteAsync("Widget/" + Widget1Id.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(R, 204);
-
- R = await Util.DeleteAsync("Widget/" + Widget2Id.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(R, 204);
- }
-
-
-
-
-
-
-
-
- //==================================================
-
- }//eoc
-}//eons