/// <summary>
        /// Сохранить сообщение.
        /// </summary>
        /// <param name="msg"></param>
        public virtual void SaveMessage(Message msg)
        {
            #region Validate parameters
            if (msg == null)
            {
                throw new ArgumentNullException("msg");
            }
            #endregion

            DAO.Message dao = msg.ToDao();

            using (UnitOfWork work = BeginWork())
            {
                if (dao.LINK == 0)
                {
                    work.Save(dao);
                }
                else
                {
                    work.Update <DAO.Message>(ref dao);
                }

                work.End();
            }

            dao.CloneTo(msg);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="dao"></param>
        /// <returns></returns>
        public static Message ToObj(this DAO.Message dao)
        {
            if (dao == null)
            {
                return(null);
            }

            var obj = new Message();

            dao.CloneTo(obj);

            return(obj);
        }