예제 #1
0
        public void UpdateCounters_Processed(string email, int noOfBytes, IMyLog log)
        {
            SqlCmdBuilder cmd = new SqlCmdBuilder(TABLE_NAME);

            cmd.Add("[LastMsgProcessedUtc]", SqlExtensions.SqlDateUtcNow().ToString());
            cmd.AddDec("[NoOfQueuedMessages]");
            cmd.AddInc("[NoOfBytesSent]", noOfBytes);
            cmd.AddInc("[NoOfSentMessages]");

            cmd.Add("[AccountStatus]", String.Format("CASE WHEN {0}={1} THEN {2} ELSE {0} END",
                                                     "[AccountStatus]",
                                                     Data_AppUserFile.eUserStatus.verified_welcome_queued.ToIntString(),
                                                     Data_AppUserFile.eUserStatus.active.ToIntString()));

            string strCmd = cmd.GetSql_Update(string.Format("WHERE [Email] like '{0}'", email));

            using (SqlDisposable s = new SqlDisposable(Db, strCmd))
            {
                if (s.Reader.RecordsAffected != 1)
                {
                    log.Error("StoreNew: *** unexpected RecordsAffected != 1");
                }
            }
        }