/// <summary>
        /// Adds the contact presenting problem.
        /// </summary>
        /// <param name="presentingProblem">The presenting problem.</param>
        /// <returns></returns>
        public Response <ContactPresentingProblemModel> AddContactPresentingProblem(ContactPresentingProblemModel presentingProblem)
        {
            var repository = unitOfWork.GetRepository <ContactPresentingProblemModel>(SchemaName.Registration);

            var spParameters = BuildPresentingProblemSpParams(presentingProblem, false);

            return(unitOfWork.EnsureInTransaction <Response <ContactPresentingProblemModel> >(repository.ExecuteNQStoredProc, "usp_AddContactPresentingProblem", spParameters, forceRollback: presentingProblem.ForceRollback ?? false, idResult: true));
        }
        /// <summary>
        /// Builds the presenting problem sp parameters.
        /// </summary>
        /// <param name="presentingProblem">The contact alias.</param>
        /// <param name="isUpdate">if set to <c>true</c> [is update].</param>
        /// <returns></returns>
        private List <SqlParameter> BuildPresentingProblemSpParams(ContactPresentingProblemModel presentingProblem, bool isUpdate)
        {
            var spParameters = new List <SqlParameter>();

            spParameters.Add(new SqlParameter("TransactionLogID", (object)presentingProblem.TransactionID ?? DBNull.Value));
            spParameters.Add(new SqlParameter("ModuleComponentID", (object)presentingProblem.ScreenID ?? DBNull.Value));
            if (isUpdate)
            {
                spParameters.Add(new SqlParameter("ContactPresentingProblemID", presentingProblem.ContactPresentingProblemID));
            }

            spParameters.Add(new SqlParameter("ContactID", presentingProblem.ContactID));
            spParameters.Add(new SqlParameter("PresentingProblemTypeID", (object)presentingProblem.PresentingProblemTypeID ?? DBNull.Value));
            spParameters.Add(new SqlParameter("EffectiveDate", (object)presentingProblem.EffectiveDate ?? DBNull.Value));
            spParameters.Add(new SqlParameter("ExpirationDate", (object)presentingProblem.ExpirationDate ?? DBNull.Value));
            spParameters.Add(new SqlParameter("ModifiedOn", (object)presentingProblem.ModifiedOn ?? DateTime.Now));



            return(spParameters);
        }