コード例 #1
0
        public virtual IEnumerable <int> GetWillUpdateBulkEmailRIds()
        {
            var select = new Select(UserConnection)
                         .Column("RId")
                         .From("BulkEmail")
                         .Where("StatusId").In(Column.Parameters(new object[] {
                TSConfiguration.MarketingConsts.BulkEmailStatusFinishedId,
                TSConfiguration.MarketingConsts.BulkEmailStatusStoppedId,
                TSConfiguration.MarketingConsts.BulkEmailStatusActiveId
            })).And().Exists(
                new Select(UserConnection)
                .Column(Column.SqlText("NULL"))
                .From("MandrillRecipient")
                .Where("BulkEmailRId").IsEqual("RId")
                ) as Select;

            HintsHelper.SpecifyNoLockHints(select, true);

            var result = new List <int>();

            using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection()) {
                using (IDataReader reader = select.ExecuteReader(dbExecutor)) {
                    int rIdColumnIndex = reader.GetOrdinal("RId");
                    while (reader.Read())
                    {
                        int bulkEmailRId = reader.GetInt32(rIdColumnIndex);
                        result.Add(bulkEmailRId);
                    }
                }
            }

            return(result);
        }
コード例 #2
0
        /// <summary>
        /// Returns query for count of recipients in queue of bulk email.
        /// </summary>
        /// <param name="bulkEmailId">Unique id of bulk email.</param>
        /// <param name="userConnection">User connection instance.</param>
        /// <returns>Query for count of recipients in queue of bulk email.</returns>
        private static Select GetRecipientsInQueueCountSelect(Guid bulkEmailId, UserConnection userConnection)
        {
            var countSelect = new Select(userConnection)
                              .Column(Func.Count("Id"))
                              .From("VwMandrillRecipient")
                              .Where("BulkEmailId").IsEqual(Column.Parameter(bulkEmailId)) as Select;

            HintsHelper.SpecifyNoLockHints(countSelect, true);
            return(countSelect);
        }