/// <summary>
        ///
        /// </summary>
        /// <param name="email"></param>
        public static void Subscribe(string email)
        {
            SQLDataAccess.ExecuteNonQuery(
                "IF (SELECT COUNT(Id) FROM [Customers].[Subscription] WHERE [Email] = @Email) > 0" +
                "BEGIN UPDATE [Customers].[Subscription] SET [Subscribe] = 1, [SubscribeDate] = GETDATE() WHERE [Email] = @Email END " +
                "ELSE " +
                "BEGIN INSERT INTO [Customers].[Subscription] ([Email],[Subscribe],[SubscribeDate],[UnsubscribeDate],[UnsubscribeReason]) VALUES (@Email,1,GETDATE(),NULL,NULL) END",
                CommandType.Text,
                new SqlParameter("@Email", email));

            var customer     = CustomerService.GetCustomerByEmail(email);
            var subscription = new Subscription {
                Email = email
            };

            if (customer != null)
            {
                subscription.FirstName = customer.FirstName;
                subscription.LastName  = customer.LastName;
                subscription.Phone     = customer.Phone;
            }

            var modules = AttachedModules.GetModules <ISendMails>();

            foreach (var moduleType in modules)
            {
                var moduleObject = (ISendMails)Activator.CreateInstance(moduleType, null);
                moduleObject.SubscribeEmail(subscription);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        public static void Subscribe(int id)
        {
            SQLDataAccess.ExecuteNonQuery(
                "UPDATE [Customers].[Subscription] SET [Subscribe] = 1, [SubscribeDate] = GETDATE(), [UnsubscribeDate] = NULL WHERE [Id] = @Id",
                CommandType.Text,
                new SqlParameter("@Id", id));
            //todo: лишние запросы получения кастомера и подписки <Sckeef>
            var subscription = GetSubscription(id);
            var customer     = CustomerService.GetCustomerByEmail(subscription.Email);
            var modules      = AttachedModules.GetModules <ISendMails>();

            foreach (var moduleType in modules)
            {
                var moduleObject = (ISendMails)Activator.CreateInstance(moduleType, null);
                moduleObject.SubscribeEmail(new Subscription {
                    Email = subscription.Email, FirstName = customer.FirstName, LastName = customer.LastName, Phone = customer.Phone
                });
            }
        }