/// <summary>
        /// Function to create a new Adviser Subscription
        /// </summary>
        /// <param name="adviserSubscriptionVo"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public int CreateAdviserSubscription(AdviserSubscriptionVo adviserSubscriptionVo, int userId)
        {
            int subscriptionId = 0;
            AdviserSubscriptionDao adviserSubscriptionDao = new AdviserSubscriptionDao();

            try
            {
                subscriptionId = adviserSubscriptionDao.CreateAdviserSubscription(adviserSubscriptionVo, userId);
            }
            catch (BaseApplicationException Ex)
            {
                throw Ex;
            }
            catch (Exception Ex)
            {
                BaseApplicationException exBase       = new BaseApplicationException(Ex.Message, Ex);
                NameValueCollection      FunctionInfo = new NameValueCollection();

                FunctionInfo.Add("Method", "AdviserSubscriptionBo.cs:GetWerpPlanFlavours()");

                object[] objects = new object[0];

                FunctionInfo = exBase.AddObject(FunctionInfo, objects);
                exBase.AdditionalInformation = FunctionInfo;
                ExceptionManager.Publish(exBase);
                throw exBase;
            }
            return(subscriptionId);
        }
        /// <summary>
        /// Function to retrieve the flavours(the modules associated) for a plan
        /// </summary>
        /// <param name="planId"></param>
        /// <returns></returns>
        public DataSet GetWerpPlanFlavours(int planId)
        {
            DataSet ds = new DataSet();
            AdviserSubscriptionDao adviserSubscriptionDao = new AdviserSubscriptionDao();

            try
            {
                ds = adviserSubscriptionDao.GetWerpPlanFlavours(planId);
            }
            catch (BaseApplicationException Ex)
            {
                throw Ex;
            }
            catch (Exception Ex)
            {
                BaseApplicationException exBase       = new BaseApplicationException(Ex.Message, Ex);
                NameValueCollection      FunctionInfo = new NameValueCollection();

                FunctionInfo.Add("Method", "AdviserSubscriptionBo.cs:GetWerpPlanFlavours()");

                object[] objects = new object[0];

                FunctionInfo = exBase.AddObject(FunctionInfo, objects);
                exBase.AdditionalInformation = FunctionInfo;
                ExceptionManager.Publish(exBase);
                throw exBase;
            }
            return(ds);
        }
        public void SetFlavoursToAdviser(string flavourIds, int adviserId)
        {
            AdviserSubscriptionDao adviserSubscriptionDao = new AdviserSubscriptionDao();

            try
            {
                adviserSubscriptionDao.SetFlavoursToAdviser(flavourIds, adviserId);
            }
            catch (BaseApplicationException Ex)
            {
                throw (Ex);
            }
            catch (Exception Ex)
            {
                BaseApplicationException exBase       = new BaseApplicationException(Ex.Message, Ex);
                NameValueCollection      FunctionInfo = new NameValueCollection();

                FunctionInfo.Add("Method", "AdvisorSubscriptionBo.cs:SetFlavoursToAdviser()");
                object[] objects = new object[2];
                objects[0] = flavourIds;
                objects[1] = adviserId;

                FunctionInfo = exBase.AddObject(FunctionInfo, objects);
                exBase.AdditionalInformation = FunctionInfo;
                ExceptionManager.Publish(exBase);
                throw exBase;
            }
        }
        public void UpdateUserPasswordInDatabase(string hassedPassword, string saltValue, int userId)
        {
            AdviserSubscriptionDao adviserSubscriptionDao = new AdviserSubscriptionDao();

            try
            {
                adviserSubscriptionDao.UpdateUserPasswordInDatabase(hassedPassword, saltValue, userId);
            }
            catch (BaseApplicationException Ex)
            {
                throw (Ex);
            }
            catch (Exception Ex)
            {
                BaseApplicationException exBase       = new BaseApplicationException(Ex.Message, Ex);
                NameValueCollection      FunctionInfo = new NameValueCollection();

                FunctionInfo.Add("Method", "AdvisorSubscriptionBo.cs:UpdateUserPasswordInDatabase()");
                object[] objects = new object[3];
                objects[0] = hassedPassword;
                objects[1] = saltValue;
                objects[2] = userId;

                FunctionInfo = exBase.AddObject(FunctionInfo, objects);
                exBase.AdditionalInformation = FunctionInfo;
                ExceptionManager.Publish(exBase);
                throw exBase;
            }
        }
        /// <summary>
        /// Function to enter Adviser Subscription Flavour details into the AdviserFlavourDetails table
        /// </summary>
        /// <param name="adviserId"></param>
        /// <param name="allModulesSelected"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public bool CreateAdviserSubscriptionFlavours(int adviserId, string allModulesSelected, int userId)
        {
            bool bResult = false;
            AdviserSubscriptionDao adviserSubscriptionDao = new AdviserSubscriptionDao();

            try
            {
                bResult = adviserSubscriptionDao.CreateAdviserSubscriptionFlavours(adviserId, allModulesSelected, userId);
            }
            catch (BaseApplicationException Ex)
            {
                throw Ex;
            }
            catch (Exception Ex)
            {
                BaseApplicationException exBase       = new BaseApplicationException(Ex.Message, Ex);
                NameValueCollection      FunctionInfo = new NameValueCollection();

                FunctionInfo.Add("Method", "AdviserSubscriptionBo.cs:CreateAdviserSubscriptionFlavours()");

                object[] objects = new object[0];

                FunctionInfo = exBase.AddObject(FunctionInfo, objects);
                exBase.AdditionalInformation = FunctionInfo;
                ExceptionManager.Publish(exBase);
                throw exBase;
            }
            return(bResult);
        }