/// <summary>
        /// Creates or updates ActivityCategory row
        /// </summary>
        /// <param name="request">ActivityCategoryCreateOrUpdateRequestDC object</param>
        /// <returns>ActivityCategoryCreateOrUpdateReplyDC object</returns>
        public ActivityCategoryCreateOrUpdateReplyDC ActivityCategoryCreateOrUpdate(ActivityCategoryCreateOrUpdateRequestDC request)
        {
            //// Eliminate with validation pipeline implementation
            if (request == null)
            {
                ActivityCategoryCreateOrUpdateReplyDC reply = new ActivityCategoryCreateOrUpdateReplyDC();
                reply.StatusReply = SetupStatusreplyNullRequestError();
                return reply;
            }

            return ActivityCategory.ActivityCategoryCreateOrUpdate(request);
        }
        /// <summary>
        /// Verify CreateOrUpdate FROM ltblActivityCategory Table
        /// </summary>
        /// <param name="id"> id to do a create or update on. id is 0 if it will be a create.</param>
        /// <param name="name">name to do a create or update on.</param>
        /// <param name="description">description to do a create or update on.</param>
        /// <param name="metaTags">metaTags to do a create or update on.</param> 
        private void CreateOrUpdateActivityCategories(int id, string name, string description, string metaTags)
        {
            createOrUpdateRequest = new ActivityCategoryCreateOrUpdateRequestDC();

            createOrUpdateReply = null;

            //Populate the request data
            createOrUpdateRequest.Incaller = IN_CALLER;
            createOrUpdateRequest.IncallerVersion = IN_CALLER_VERSION;
            createOrUpdateRequest.InId = id;
            createOrUpdateRequest.InGuid = Guid.NewGuid();
            createOrUpdateRequest.InName = name;
            createOrUpdateRequest.InDescription = description;
            createOrUpdateRequest.InInsertedByUserAlias = USER;
            createOrUpdateRequest.InUpdatedByUserAlias = USER;
            createOrUpdateRequest.InMetaTags = metaTags;
            createOrUpdateRequest.InAuthGroupName = IN_AUTH_GROUP_NAME;

            try
            {
                createOrUpdateReply = devBranchProxy.ActivityCategoryCreateOrUpdate(createOrUpdateRequest);
            }
            catch (FaultException e)
            {
                Assert.Fail("Failed to createOrUpdate data from ltblActivityCategory: {0}", e.Message);
            }
            catch (Exception ex)
            {
                Assert.Fail("Failed to createOrUpdate data from ltblActivityCategory: {0}", ex.Message);
            }

            Assert.IsNotNull(createOrUpdateReply, "ActivityCategoryCreateOrUpdateReplyDC object null");
            Assert.IsNotNull(createOrUpdateReply.StatusReply, "createOrUpdateReply.StatusReply is null");
            Assert.AreEqual(0, createOrUpdateReply.StatusReply.Errorcode, "createOrUpdateReply.StatusReply. Errorcode is not 0. Instead it is {0}.", createOrUpdateReply.StatusReply.Errorcode);
            Assert.IsNull(createOrUpdateReply.StatusReply.ErrorMessage, "createOrUpdateReply.StatusReply.ErrorMessage is not null");
            Assert.IsNull(createOrUpdateReply.StatusReply.ErrorGuid, "createOrUpdateReply.StatusReply.ErrorGuid is not null");
        }
        /// <summary>
        /// Verify CreateOrUpdate FROM ltblActivityCategory Table for Invalid IDs. id is invalid if it's not 0 or not already in the table.
        /// </summary>
        /// <param name="id">id to try to insert or update</param>
        /// <param name="name">name to try to insert or update</param>
        private void CreateOrUpdateActivityCategoriesForInvalidId(int id, string name)
        {
            bool isFaultException = false;

            createOrUpdateRequest = new ActivityCategoryCreateOrUpdateRequestDC();

            createOrUpdateReply = null;

            //Populate the request data
            createOrUpdateRequest.Incaller = IN_CALLER;
            createOrUpdateRequest.IncallerVersion = IN_CALLER_VERSION;
            createOrUpdateRequest.InId = id;
            createOrUpdateRequest.InGuid = Guid.NewGuid();
            createOrUpdateRequest.InName = name;
            createOrUpdateRequest.InDescription = TEST_STRING;
            createOrUpdateRequest.InInsertedByUserAlias = USER;
            createOrUpdateRequest.InUpdatedByUserAlias = USER;
            createOrUpdateRequest.InMetaTags = TEST_STRING;
            createOrUpdateRequest.InAuthGroupName = IN_AUTH_GROUP_NAME;

            try
            {
                createOrUpdateReply = devBranchProxy.ActivityCategoryCreateOrUpdate(createOrUpdateRequest);
            }
            catch (FaultException e)
            {
                Assert.Fail("Failed to createOrUpdate data from ltblActivityCategory: {0}", e.Message);
            }
            catch (Exception ex)
            {
                Assert.Fail("Failed to createOrUpdate data from ltblActivityCategory: {0}", ex.Message);
            }

            if (!isFaultException)
            {
                int errorConstant = GetErrorConstantInvalidIDForUpdate(id);

                Assert.IsNotNull(createOrUpdateReply, "ActivityCategoryCreateOrUpdateReplyDC object null");
                Assert.IsNotNull(createOrUpdateReply.StatusReply, "createOrUpdateReply.StatusReply is null");
                Assert.AreEqual(createOrUpdateReply.StatusReply.Errorcode, errorConstant, "createOrUpdateReply.StatusReply. Errorcode is not {0}. Instead it is {1}.", errorConstant, createOrUpdateReply.StatusReply.Errorcode);
                Assert.IsNotNull(createOrUpdateReply.StatusReply.ErrorMessage, "createOrUpdateReply.StatusReply.ErrorMessage is null");
            }
        }
        /// <summary>
        /// Verify CreateOrUpdate FROM ltblActivityCategory Table. This will be a create since id is null.
        /// </summary>
        /// <param name="name">name to do a create or update on.</param>
        /// <param name="description">description to do a create or update on.</param>
        /// <param name="metaTag">metaTag to do a create or update on.</param>
        /// <param name="newId">id that will be created if it's an update.</param>
        /// <returns>returns the id created</returns>
        private int CreateActivityCategoriesWithNullId(string name, string description, string metaTags)
        {
            createOrUpdateRequest = new ActivityCategoryCreateOrUpdateRequestDC();

            createOrUpdateReply = null;

            //Populate the request data
            createOrUpdateRequest.Incaller = IN_CALLER;
            createOrUpdateRequest.IncallerVersion = IN_CALLER_VERSION;
            createOrUpdateRequest.InGuid = Guid.NewGuid();
            createOrUpdateRequest.InName = name;
            createOrUpdateRequest.InDescription = description;
            createOrUpdateRequest.InInsertedByUserAlias = USER;
            createOrUpdateRequest.InUpdatedByUserAlias = USER;
            createOrUpdateRequest.InMetaTags = metaTags;
            createOrUpdateRequest.InAuthGroupName = IN_AUTH_GROUP_NAME;

            try
            {
                createOrUpdateReply = devBranchProxy.ActivityCategoryCreateOrUpdate(createOrUpdateRequest);
            }
            catch (FaultException e)
            {
                Assert.Fail("Failed to createOrUpdate data from ltblActivityCategory: {0}", e.Message);
            }
            catch (Exception ex)
            {
                Assert.Fail("Failed to createOrUpdate data from ltblActivityCategory: {0}", ex.Message);
            }

            Assert.IsNotNull(createOrUpdateReply, "ActivityCategoryCreateOrUpdateReplyDC object null");
            Assert.IsNotNull(createOrUpdateReply.StatusReply, "createOrUpdateReply.StatusReply is null");
            Assert.AreEqual(SprocValues.REPLY_ERRORCODE_VALUE_OK, createOrUpdateReply.StatusReply.Errorcode, "createOrUpdateReply.StatusReply.Errorcode is not 0. Instead it is {0}.", createOrUpdateReply.StatusReply.Errorcode);
            Assert.IsNull(createOrUpdateReply.StatusReply.ErrorMessage, "createOrUpdateReply.StatusReply.ErrorMessage is not null");
            Assert.IsNull(createOrUpdateReply.StatusReply.ErrorGuid, "createOrUpdateReply.StatusReply.ErrorGuid is not null");

            int id = GetActivityCategoriesForValidName(name);
            //Sleep one second for next call
            Thread.Sleep(1000);
            GetActivityCategoriesForValidIDs(id);
            Assert.IsNotNull(getByNameReplyList, "getByNameReplyList is null.");
            Assert.AreEqual(1, getByNameReplyList.Count, "getByNameReplyList.Count is not 1.");
            Assert.IsNotNull(getByNameReplyList[0].StatusReply, "getByNameReplyList[0].StatusReply is null");
            Assert.AreEqual(0, getByNameReplyList[0].StatusReply.Errorcode, "StatusReply.Errorcode is not 0. Instead it is {1}.", getByNameReplyList[0].StatusReply.Errorcode);
            Assert.IsTrue(string.IsNullOrEmpty(getByNameReplyList[0].StatusReply.ErrorMessage), "Error Message is not null. Error Message: {0}", getByNameReplyList[0].StatusReply.ErrorMessage);
            Assert.IsTrue(string.IsNullOrEmpty(getByNameReplyList[0].StatusReply.ErrorGuid), "ErrorGuid is not null. ErrorGuid: {0}", getByNameReplyList[0].StatusReply.ErrorGuid);
            Assert.AreEqual(description, getByNameReplyList[0].Description, "Description did not get inserted correctly");
            Assert.AreEqual(name, getByNameReplyList[0].Name, "Name did not get inserted correctly");
            Assert.AreEqual(metaTags, getByNameReplyList[0].MetaTags, "MetaTags did not get inserted correctly");

            return id;
        }