예제 #1
0
        public void SendNotification <T>(string activityId, int refNo, T data, int suppress = 0)
        {
            var activity = new ActivityRepo(db, partnerManager).GetActivity(activityId);
            var messages = new ActivityMessageRepo(db, partnerManager).GetList(activity.Id, -1);
            var toNumber = string.Empty;

            foreach (var m in messages)
            {
                if (suppress > 0 && suppress == m.Message.ToWho)
                {
                    continue;
                }
                if (m.Message.ToWho == 1)
                {
                    toNumber = new MessageTemplateRepo(db, partnerManager).TranslateMessage <T>("{mobile.1}", data);
                }
                else
                {
                    toNumber = new MessageTemplateRepo(db, partnerManager).TranslateMessage <T>("{mobile.2}", data);
                }
                var readyMsg = new MessageTemplateRepo(db, partnerManager).TranslateMessage <T>(m.Message.Message, data);

                if (!string.IsNullOrEmpty(toNumber) && !string.IsNullOrEmpty(readyMsg))
                {
                    var sms = new SMSOut();
                    sms.Receiver = toNumber;
                    sms.Message  = readyMsg;
                    var result = Create(sms);
                }
            }
        }
예제 #2
0
        public List <MessageTemplate> GetByPartTitle(string title, bool relatedActivities = false)
        {
            #region Parameters
            var parameters = new List <OracleParameter> {
                new OracleParameter {
                    ParameterName = "MsgTitle", OracleDbType = OracleDbType.NVarchar2, Value = title
                }
            };
            #endregion
            var masterDataTable = db.GetData("Select * from message_template t  Where (msg_name LIKE '%' ||  :MsgTitle || '%') or (msg_text LIKE '%' ||  :MsgTitle || '%') ", parameters);

            if (masterDataTable == null)
            {
                return(null);
            }
            if (masterDataTable.Rows.Count == 0)
            {
                return(null);
            }
            var results = new List <MessageTemplate>();
            foreach (DataRow row in masterDataTable.Rows)
            {
                var obj = new MessageTemplate();
                obj.Id            = row["msg_id"] == DBNull.Value ? -1 : int.Parse(row["msg_id"].ToString());
                obj.ToWho         = row["towho"] == DBNull.Value ? -1 : int.Parse(row["towho"].ToString());
                obj.Title         = row["msg_name"] == DBNull.Value ? string.Empty : row["msg_name"].ToString();
                obj.Message       = row["msg_text"] == DBNull.Value ? string.Empty : row["msg_text"].ToString();
                obj.CreatedOn     = row["createdon"] == DBNull.Value ? DateTime.MinValue : DateTime.Parse(row["createdon"].ToString());
                obj.LastUpdatedOn = row["lastupdateon"] == DBNull.Value ? DateTime.MinValue : DateTime.Parse(row["lastupdateon"].ToString());
                var createdAccount = row["createdbyacc"] == DBNull.Value ? -1 : int.Parse(row["createdbyacc"].ToString());
                var partner        = partnerManager.GetPartnerByAccount(createdAccount);
                obj.CreatedBy.Id      = row["createdby"] == DBNull.Value ? string.Empty : row["createdby"].ToString();
                obj.CreatedBy.Name    = partner.Name;
                obj.CreatedBy.Account = partner.Account;
                //  get activities
                if (relatedActivities)
                {
                    var activities = new ActivityMessageRepo(db, partnerManager).GetList(string.Empty, obj.Id);
                    if (activities != null)
                    {
                        foreach (var item in activities)
                        {
                            obj.Activities.Add(item.Activity);
                        }
                    }
                }
                //--------------------------------------------------
                results.Add(obj);
            }
            return(results);
        }