Beispiel #1
0
 public static KnowledgebaseCategory ToResponseData(KnowledgebaseCategoryRequest requestData)
 {
     return(ToResponseType <KnowledgebaseCategoryRequest, KnowledgebaseCategory>(requestData));
 }
		private RequestBodyBuilder PopulateRequestParameters(KnowledgebaseCategoryRequest knowledgebaseCategoryRequest, RequestTypes requestType)
		{
			knowledgebaseCategoryRequest.EnsureValidData(requestType);

			RequestBodyBuilder parameters = new RequestBodyBuilder();
			parameters.AppendRequestDataNonEmptyString("title", knowledgebaseCategoryRequest.Title);

			if (knowledgebaseCategoryRequest.CategoryType.HasValue)
			{
				parameters.AppendRequestData("categorytype",
				                             EnumUtility.ToApiString(knowledgebaseCategoryRequest.CategoryType.Value));
			}

			if (knowledgebaseCategoryRequest.ParentCategoryId.HasValue)
			{
				parameters.AppendRequestData("parentcategoryid", knowledgebaseCategoryRequest.ParentCategoryId.Value);
			}

			if (knowledgebaseCategoryRequest.DisplayOrder.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("displayorder", knowledgebaseCategoryRequest.DisplayOrder.Value);
			}

			if (knowledgebaseCategoryRequest.ArticleSortOrder.HasValue)
			{
				parameters.AppendRequestData("articlesortorder",
				                             EnumUtility.ToApiString(knowledgebaseCategoryRequest.ArticleSortOrder.Value));
			}

			parameters.AppendRequestDataBool("allowcomments", knowledgebaseCategoryRequest.AllowComments);
			parameters.AppendRequestDataBool("allowrating", knowledgebaseCategoryRequest.AllowRating);
			parameters.AppendRequestDataBool("ispublished", knowledgebaseCategoryRequest.IsPublished);
			parameters.AppendRequestDataBool("uservisibilitycustom", knowledgebaseCategoryRequest.UserVisibilityCustom);
			parameters.AppendRequestDataArrayCommaSeparated("usergroupidlist", knowledgebaseCategoryRequest.UserGroupIdList);
			parameters.AppendRequestDataBool("staffvisibilitycustom", knowledgebaseCategoryRequest.StaffVisibilityCustom);
			parameters.AppendRequestDataArrayCommaSeparated("staffgroupidlist", knowledgebaseCategoryRequest.StaffGroupIdList);

			if (requestType == RequestTypes.Create && knowledgebaseCategoryRequest.StaffId.HasValue)
			{
				parameters.AppendRequestDataNonNegativeInt("staffid", knowledgebaseCategoryRequest.StaffId.Value);
			}

			return parameters;
		}
		public KnowledgebaseCategory UpdateKnowledgebaseCategory(KnowledgebaseCategoryRequest knowledgebaseCategoryRequest)
		{
			string apiMethod = String.Format("{0}/{1}", KnowledgebaseCategoryBaseUrl, knowledgebaseCategoryRequest.Id);
			RequestBodyBuilder parameters = PopulateRequestParameters(knowledgebaseCategoryRequest, RequestTypes.Update);

			KnowledgebaseCategoryCollection knowledgebaseCategories = Connector.ExecutePut<KnowledgebaseCategoryCollection>(apiMethod, parameters.ToString());

			if (knowledgebaseCategories != null && knowledgebaseCategories.Count > 0)
			{
				return knowledgebaseCategories[0];
			}

			return null;
		}
		public KnowledgebaseCategory CreateKnowledgebaseCategory(KnowledgebaseCategoryRequest knowledgebaseCategoryRequest)
		{
			RequestBodyBuilder parameters = PopulateRequestParameters(knowledgebaseCategoryRequest, RequestTypes.Create);

			KnowledgebaseCategoryCollection knowledgebaseCategories = Connector.ExecutePost<KnowledgebaseCategoryCollection>(KnowledgebaseCategoryBaseUrl, parameters.ToString());

			if (knowledgebaseCategories != null && knowledgebaseCategories.Count > 0)
			{
				return knowledgebaseCategories[0];
			}

			return null;
		}
		public static KnowledgebaseCategory ToResponseData(KnowledgebaseCategoryRequest requestData)
		{
			return ToResponseType<KnowledgebaseCategoryRequest, KnowledgebaseCategory>(requestData);
		}
        public void CreateKnowledgebaseCategory()
        {
            var knowledgebaseCategoryRequest = new KnowledgebaseCategoryRequest
                {
                    Title = "Title",
                    CategoryType = KnowledgebaseCategoryType.Inherit,
                    ParentCategoryId = 3,
                    DisplayOrder = 3,
                    ArticleSortOrder = KnowledgebaseCategoryArticleSortOrder.SortCreationDate,
                    AllowComments = true,
                    AllowRating = false,
                    IsPublished = true,
                    UserVisibilityCustom = true,
                    UserGroupIdList = new[] {1, 2, 3},
                    StaffVisibilityCustom = false,
                    StaffGroupIdList = new[] {1, 2, 3},
                    StaffId = 3
                };

            const string apiMethod = "/Knowledgebase/Category";
            const string parameters = "title=Title&categorytype=4&parentcategoryid=3&displayorder=3&articlesortorder=4&allowcomments=1&allowrating=0&ispublished=1&uservisibilitycustom=1&usergroupidlist=1,2,3&staffvisibilitycustom=0&staffgroupidlist=1,2,3&staffid=3";

            _kayakoApiRequest.Setup(x => x.ExecutePost<KnowledgebaseCategoryCollection>(apiMethod, parameters)).Returns(_responseKnowledgebaseCategoryCollection);

            var knowledgebaseCategory = _knowledgebaseController.CreateKnowledgebaseCategory(knowledgebaseCategoryRequest);

            _kayakoApiRequest.Verify(x => x.ExecutePost<KnowledgebaseCategoryCollection>(apiMethod, parameters), Times.Once());
            Assert.That(knowledgebaseCategory, Is.EqualTo(_responseKnowledgebaseCategoryCollection.FirstOrDefault()));
        }