public static IEnumerable <sms.smsTransC> GetMonthSMSTransaction(int yr, int month)
        {
            if (yr == 0 | month == 0)
            {
                return(null);
            }
            if (DATA_SMS_TRANSACTION == null)
            {
                DATA_SMS_TRANSACTION = new SortedList <int, SortedList <int, List <smsTransC> > >();
            }
            if (DATA_SMS_TRANSACTION.Keys.IndexOf(yr) == -1)
            {
                DATA_SMS_TRANSACTION.Add(yr, new SortedList <int, List <smsTransC> >());
                DATA_SMS_TRANSACTION[yr].Add(month, new List <smsTransC>());
            }
            if (DATA_SMS_TRANSACTION[yr][month].Count > 0)
            {
                return(DATA_SMS_TRANSACTION[yr][month]);
            }
            var    _month_fs = fn.GetFsIDMonth(month, yr);
            string _str      = string.Format("select * from sms_trans_tb where partition_id between {0} and {1}", _month_fs[0], _month_fs[1]);

            sms.smsTransC _obj = null;
            using (var _dr = dbm.SelectCommand(_str))
            {
                if (_dr == null)
                {
                    return(null);
                }
                while (_dr.Read())
                {
                    try
                    {
                        _obj                  = new smsTransC();
                        _obj.trans_fs_id      = _dr["trans_fs_id"].ToInt32();
                        _obj.fs_obj           = datam.DATA_FS[yr][_obj.trans_fs_id];
                        _obj.trans_id         = _dr["trans_id"].ToInt32();
                        _obj.trans_time       = _dr["trans_time"].ToStringNullable();
                        _obj.heading          = _dr["heading"].ToStringNullable();
                        _obj.max_char_per_msg = _dr["max_char_per_msg"].ToInt32();
                        _obj.message_string   = _dr["message"].ToStringNullable();
                        _obj.message_count    = _dr["message_count"].ToInt32();
                        _obj.no_of_characters = _dr["no_of_characters"].ToInt32();
                        _obj.pc_us_id         = _dr["pc_us_id"].ToInt32();
                        _obj.phone_count      = _dr["phone_count"].ToInt32();
                        _obj.phone_string     = _dr["phone_string"].ToStringNullable();
                        _obj.client_name      = _dr["client_name"].ToStringNullable();
                        _obj.client_id        = _dr["client_id"].ToInt32();
                        _obj.client_sms_cp    = _dr["client_sms_cp"].ToFloat();
                        _obj.admin_sms_cp     = _dr["admin_sms_cp"].ToFloat();
                        _obj.sms_type         = (em.sms_type)_dr["sms_type"].ToByte();
                        _obj.trans_date       = _dr["trans_date"] == null ? null : _dr.GetDateTime("trans_date").ToString(new CultureInfo("en-US"));
                        _obj.WasScheduled     = _dr["sms_type"].ToByte() == 0 ? false : true;
                        if (LAST_SMS_TRANS_ID < _obj.trans_id)
                        {
                            LAST_SMS_TRANS_ID = _obj.trans_id;
                        }
                        DATA_SMS_TRANSACTION[yr][month].Add(_obj); _obj = null;
                    }
                    catch (Exception ex)
                    {
                        return(null);
                    }
                }
                return(DATA_SMS_TRANSACTION[yr][month]);
            }
        }
 private void InsertRecordIntoDB()
 {
     #region Insert Into The Database
     sms.smsTransC _trans = new smsTransC();
     _trans.fs_obj           = datam.CURR_FS;
     _trans.heading          = m_HEADER;
     _trans.max_char_per_msg = SMS_MAX;
     _trans.message_count    = m_msg_count;
     _trans.message_string   = m_MESSAGE;
     _trans.no_of_characters = _trans.message_string.Length;
     _trans.pc_us_id         = datam.PC_US_ID;
     _trans.phone_count      = m_phone_count;
     _trans.phone_string     = m_PhoneString;
     _trans.sms_type         = em.sms_type.company;
     _trans.trans_date       = datam.CURR_DATE.ToShortDateString();
     _trans.trans_fs_id      = datam.CURR_FS.fs_id;
     _trans.client_sms_cp    = m_client.client_sms_cp;
     _trans.trans_time       = datam.CURR_DATE.ToShortTimeString();
     _trans.client_name      = m_client.client_name;
     _trans.client_id        = m_client.client_id;
     //_trans.admin_account_id = -1964;
     _trans.account_id = -1964;
     string[] _cols = new string[]
     {
         "trans_year",
         "trans_date",
         "trans_time",
         "trans_fs_id",
         "account_id",
         "client_name",
         "client_id",
         "heading",
         "message",
         "max_char_per_msg",
         "message_count",
         "no_of_characters",
         "phone_string",
         "phone_count",
         "admin_sms_cp",
         "account_sms_cp",
         "client_sms_cp",
         "sms_type",
         "partition_id",
         "admin_account_id",
         "account_type_id",
         "comp_cat_id",
         "user_type_id",
         "pc_us_id"
     };
     var _row = new object[]
     {
         datam.CURR_DATE.Year,
         datam.CURR_DATE.Date,
         _trans.trans_time,
         _trans.trans_fs_id,
         _trans.account_id,
         _trans.client_name,
         _trans.client_id,
         _trans.heading,
         _trans.message_string,
         _trans.max_char_per_msg,
         _trans.message_count,
         _trans.no_of_characters,
         null,
         _trans.phone_count,
         _trans.admin_sms_cp,
         _trans.account_sms_cp,
         _trans.client_sms_cp,
         _trans.sms_type.ToByte(),
         _trans.trans_fs_id, //partition_id
         _trans.admin_account_id,
         12,                 //account_type_id
         13,                 //comp_cat_id,
         0,                  //user type _id
         datam.PC_US_ID
     };
     using (var xd = new xing())
     {
         _trans.trans_id = xd.SingleInsertCommandInt("sms_trans_tb", _cols, _row);
         xd.InsertUpdateDelete(string.Format("update sms_count_tb set s_count=(s_count+{0})", m_phone_count));
         xd.CommitTransaction();
     }
     datam.DATA_SMS_TRANSACTION[datam.CURR_DATE.Year][datam.CURR_DATE.Month].Add(_trans);
     datam.LAST_SMS_TRANS_ID = _trans.trans_id;
     (this.Owner.Owner as sms.SmsManager).NewTransaction(_trans); _trans = null;
     #endregion
 }