コード例 #1
0
ファイル: SubscriberDTO.cs プロジェクト: c0d3m0nky/mty
 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
     };
 }
コード例 #2
0
ファイル: SeedDiscrepancy.cs プロジェクト: c0d3m0nky/mty
        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
            };
        }
コード例 #3
0
ファイル: SubscribersContext.cs プロジェクト: c0d3m0nky/mty
        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;
        }
コード例 #4
0
ファイル: SubscribersContext.cs プロジェクト: c0d3m0nky/mty
        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;
        }
コード例 #5
0
ファイル: SubscribersContext.cs プロジェクト: c0d3m0nky/mty
        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;
        }
コード例 #6
0
ファイル: SeedDiscrepancy.cs プロジェクト: c0d3m0nky/mty
        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
            };
        } 
コード例 #7
0
ファイル: SeedDiscrepancy.cs プロジェクト: c0d3m0nky/mty
        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;
        }