internal static SubscriberDTO? FromSubscriber(Subscriber subscriber) { return (subscriber == null) ? default(Nullable<SubscriberDTO>) : new SubscriberDTO { SubscriberId = subscriber.subscriber_id, IsMailable = subscriber.send > 0, DateCreated = subscriber.insertionDate }; }
public static SeedDiscrepancy FromEngager(Account account, Subscriber subscriber) { var accountData = AccountDTO.FromAccount(account); var subscriberData = SubscriberDTO.FromSubscriber(subscriber); return new SeedDiscrepancy { Account = accountData, Subscriber = subscriberData, EmailAddress = account.EmailAddress, FirstName = account.FirstName, LastName = account.LastName, DOB = account.DateOfBirth, Gender = account.Gender, Country = account.Country, State = account.State, City = account.City, ZipCode = account.Zip, Description = !subscriberData.HasValue ? string.Format(MissingSeedMessage, "WD") : !subscriberData.Value.IsMailable ? NotMailableSeedMessage : UnknownDiscrepancyMessage }; }
public static async Task<bool> Add(this SubscribersContext ctx, Subscriber subscriber) { var parameters = new [] { new SqlParameter("@send", subscriber.send), new SqlParameter("@insertionDate", SqlDbType.DateTime) { Value = subscriber.insertionDate }, new SqlParameter("@updateDate", SqlDbType.DateTime) { Value = subscriber.updateDate.Value }, new SqlParameter("@firstName", subscriber.firstName), new SqlParameter("@lastName", subscriber.lastName), new SqlParameter("@email", subscriber.email), new SqlParameter("@MD5_email", SqlDbType.VarBinary, 16) { Value = subscriber.MD5_email }, new SqlParameter("@domainName", subscriber.domainName), new SqlParameter("@category", SqlDbType.SmallInt) { Value = 0 }, new SqlParameter("@frequency", 1), }.ToList(); var builder = new StringBuilder(); parameters.ForEach(x => builder.AppendFormat("{0}, ", x.ParameterName.Replace("@", String.Empty))); var columnNames = builder.TrimTail(2).ToString(); builder.Clear(); parameters.ForEach(x => builder.AppendFormat("{0}, ", x.ParameterName)); var parameterNames = builder.TrimTail(2).ToString(); var statement = string.Format("INSERT INTO [{0}] ({1}) VALUES ({2})", ctx.TableName, columnNames, parameterNames); var result = await ctx.Database.ExecuteSqlCommandAsync(statement, parameters.ToArray()); return result != 0; }
public static async Task<bool> Delete(this SubscribersContext ctx, Subscriber subscriber) { var parameters = new[] { new SqlParameter("@subscriber_id", subscriber.subscriber_id) }; var statement = string.Format("DELETE [{0}] WHERE subscriber_id = @subscriber_id", ctx.TableName); var result = await ctx.Database.ExecuteSqlCommandAsync(statement, parameters); return result != 0; }
public static async Task<bool> Update(this SubscribersContext ctx, Subscriber subscriber) { var parameters = new[] { new SqlParameter("@subscriber_id", subscriber.subscriber_id), new SqlParameter("@send", subscriber.send), new SqlParameter("@updateDate", SqlDbType.DateTime) { Value = subscriber.updateDate.Value } }; var statement = string.Format("UPDATE [{0}] SET send = @send, updateDate = @updateDate WHERE subscriber_id = @subscriber_id", ctx.TableName); var result = await ctx.Database.ExecuteSqlCommandAsync(statement, parameters); return result != 0; }
public static SeedDiscrepancy FromWhiteDelivery(Account account, Subscriber subscriber) { var accountData = AccountDTO.FromAccount(account); var subscriberData = SubscriberDTO.FromSubscriber(subscriber); return new SeedDiscrepancy { Account = accountData, Subscriber = subscriberData, EmailAddress = subscriber.email, FirstName = subscriber.firstName, LastName = subscriber.lastName, DOB = subscriber.dob, Gender = subscriber.gender, Country = subscriber.country, State = subscriber.state, City = subscriber.city, ZipCode = subscriber.zip, Description = !accountData.HasValue ? string.Format(MissingSeedMessage, "Engager") : !accountData.Value.IsActive ? NotActiveSeedMessage : UnknownDiscrepancyMessage }; }
public Subscriber ToSubscriber() { var result = new Subscriber { email = EmailAddress, firstName = FirstName, lastName = LastName, dob = DOB, gender = Gender, country = Country, state = State, city = City, zip = ZipCode, }; if (Subscriber.HasValue) { result.subscriber_id = Subscriber.Value.SubscriberId; result.send = (byte) (Subscriber.Value.IsMailable ? 1 : 0); result.insertionDate = Subscriber.Value.DateCreated; } if (Account.HasValue) { var provider = WD40.Domain.Engagement.Providers.Registry.Instance[Account.Value.ProviderId]; result.domainName = provider.Domain; } return result; }