/// <summary>
        /// Connects to database and returns message template  by message template ID.
        /// </summary>
        /// <param name="MessageTemplateID">Message Template ID.</param>
        /// <param name="PortalID">Portal ID.</param>
        /// <returns>MessageManagemenetInfo class onject contain message details</returns>
        public MessageManagementInfo GetMessageTemplate(int MessageTemplateID, int PortalID)
        {
            SqlDataReader reader = null;

            try
            {
                SQLHandler SQLH = new SQLHandler();
                List <KeyValuePair <string, object> > ParamCollInput = new List <KeyValuePair <string, object> >();
                ParamCollInput.Add(new KeyValuePair <string, object>("@MessageTemplateID", MessageTemplateID));
                ParamCollInput.Add(new KeyValuePair <string, object>("@PortalID", PortalID));
                reader = SQLH.ExecuteAsDataReader("[dbo].[sp_GetMessageTemplate]", ParamCollInput);
                MessageManagementInfo objList = new MessageManagementInfo();

                while (reader.Read())
                {
                    objList.Subject  = reader["Subject"].ToString();
                    objList.Body     = reader["Body"].ToString();
                    objList.MailFrom = reader["MailFrom"].ToString();
                    objList.IsActive = bool.Parse(reader["IsActive"].ToString());
                    objList.MessageTemplateTypeID = int.Parse(reader["MessageTemplateTypeID"].ToString());
                }
                return(objList);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
        /// <summary>
        /// Connects to database and returns activation code
        /// </summary>
        /// <param name="Username">User's name</param>
        /// <param name="PortalID">Portal ID</param>
        /// <returns>Activation code</returns>
        public MessageManagementInfo GetUserActivationCode(string Username, int PortalID)
        {
            SqlDataReader reader = null;

            try
            {
                string     sp   = "[dbo].[sp_GetUserActivationCode]";
                SQLHandler SQLH = new SQLHandler();

                List <KeyValuePair <string, object> > ParamCollInput = new List <KeyValuePair <string, object> >();
                ParamCollInput.Add(new KeyValuePair <string, object>("@UserName", Username));
                ParamCollInput.Add(new KeyValuePair <string, object>("@PortalID", PortalID));

                reader = SQLH.ExecuteAsDataReader(sp, ParamCollInput);
                MessageManagementInfo objInfo = new MessageManagementInfo();

                while (reader.Read())
                {
                    objInfo.UserId = new Guid(reader["UserId"].ToString());
                }
                return(objInfo);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
        /// <summary>
        /// Connects to database and returns user's first name.
        /// </summary>
        /// <param name="Username">User's name.</param>
        /// <param name="PortalID">Portal ID.</param>
        /// <returns>User's first name.</returns>
        public MessageManagementInfo GetUserDetailsByUserName(string Username, int PortalID)
        {
            SqlDataReader reader = null;

            try
            {
                string     sp   = "[dbo].[usp_getUserDetaisByuserName]";
                SQLHandler SQLH = new SQLHandler();

                List <KeyValuePair <string, object> > ParamCollInput = new List <KeyValuePair <string, object> >();
                ParamCollInput.Add(new KeyValuePair <string, object>("@UserName", Username));
                ParamCollInput.Add(new KeyValuePair <string, object>("@PortalID", PortalID));
                MessageManagementInfo objInfo = SQLH.ExecuteAsObject <MessageManagementInfo>(sp, ParamCollInput);
                return(objInfo);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
        public MessageManagementInfo GetUserActivationCode(string Username, int PortalID)
        {
            SqlDataReader reader = null;
            try
            {
                string sp = "[dbo].[sp_GetUserActivationCode]";
                SQLHandler SQLH = new SQLHandler();

                List<KeyValuePair<string, object>> ParamCollInput = new List<KeyValuePair<string, object>>();
                ParamCollInput.Add(new KeyValuePair<string, object>("@UserName", Username));
                ParamCollInput.Add(new KeyValuePair<string, object>("@PortalID", PortalID));

                reader = SQLH.ExecuteAsDataReader(sp, ParamCollInput);
                MessageManagementInfo objInfo = new MessageManagementInfo();

                while (reader.Read())
                {
                    objInfo.UserId = new Guid(reader["UserId"].ToString());
                }
                return objInfo;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
        public MessageManagementInfo GetMessageTemplate(int MessageTemplateID, int PortalID)
        {
            SqlDataReader reader = null;
            try
            {

                SQLHandler SQLH = new SQLHandler();
                List<KeyValuePair<string, object>> ParamCollInput = new List<KeyValuePair<string, object>>();
                ParamCollInput.Add(new KeyValuePair<string, object>("@MessageTemplateID", MessageTemplateID));
                ParamCollInput.Add(new KeyValuePair<string, object>("@PortalID", PortalID));
                reader = SQLH.ExecuteAsDataReader("[dbo].[sp_GetMessageTemplate]", ParamCollInput);
                MessageManagementInfo objList = new MessageManagementInfo();

                while (reader.Read())
                {

                    objList.Subject = reader["Subject"].ToString();
                    objList.Body = reader["Body"].ToString();
                    objList.MailFrom = reader["MailFrom"].ToString();
                    objList.IsActive = bool.Parse(reader["IsActive"].ToString());
                    objList.MessageTemplateTypeID = int.Parse(reader["MessageTemplateTypeID"].ToString());

                }
                return objList;
            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }

        }