/// <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 }); } }