Beispiel #1
0
        public int createMessage(Message msg, string depart, string receiveID)
        {
            using (var trans = _DbContext.Database.BeginTransaction()){
                var count = 0;
                try
                {
                    _DbContext.message.Add(msg);        //createMsg
                    count = _DbContext.SaveChanges();
                    if (msg.ID > 0 && count == 1)       //sendMsg
                    {
                        var sendSel = 0;
                        if ((depart == "-1") || (depart == "" && receiveID == "-1"))
                        {
                            sendSel = 1;    //send All
                        }
                        else if (receiveID == "-1")
                        {
                            sendSel = 2;    //send depart all
                        }
                        else
                        {
                            sendSel = 3;    //send one
                        }
                        List <Account> receiveAllID = new List <Account>()
                        {
                        };
                        switch (sendSel)
                        {
                        case 1: receiveAllID = GetAllAccID();  break;

                        case 2: receiveAllID = GetDepartAllAccID(depart);  break;

                        case 3: var result = 0;
                            Int32.TryParse(receiveID, out result);
                            receiveAllID.Add(new Account {
                                ID = result
                            });
                            break;
                        }
                        foreach (var account in receiveAllID)
                        {
                            var record = new MsgSendReceive();
                            record.messageID  = msg.ID;
                            record.sendID     = record.lastOperaAccID = msg.lastOperaAccID;
                            record.receiveID  = account.ID;
                            record.createTime = definePara.dtNow();
                            _DbContext.msgsendreceive.Add(record);
                            _DbContext.SaveChanges();
                        }
                        trans.Commit();
                    }
                }
                catch (Exception ex) {
                    count = catchErrorProcess(ex, count);
                }
                return(count);
            }
        }
        public void systemSendMessage(string name, int loginID, string type)
        {
            var title = "系統通知";
            var text  = "";

            switch (type)
            {
            case "punch": text = "打卡異常,如有需要請前往處理,謝謝"; break;

            case "leave": text = "辦理了請假手續,若方便請前往處理,謝謝"; break;

            case "overtime": text = "申請加班,若方便請前往處理,謝謝"; break;

            case "earlyPunch": text = "還未到該所屬工作時段,提前打了上班卡,在此通知"; break;
            }
            var content = name + text;
            var msg     = new Message {
                title = title, content = content, createTime = definePara.dtNow()
            };

            _DbContext.message.Add(msg);
            _DbContext.SaveChanges();
            var msgID = msg.ID;

            if (msgID > 0)
            {
                var arr     = _DbContext.employeeprincipals.Where(b => b.employeeID == loginID).ToList();
                var hadSend = new List <int>();
                foreach (var tmp in arr)
                {
                    if (hadSend.IndexOf(tmp.principalID) == -1)
                    {
                        var record = new MsgSendReceive {
                            messageID = msgID, createTime = definePara.dtNow()
                        };
                        hadSend.Add(tmp.principalID);
                        record.receiveID = tmp.principalID;
                        _DbContext.msgsendreceive.Add(record);
                        _DbContext.SaveChanges();
                    }
                    if (tmp.principalAgentID > 0 && hadSend.IndexOf(tmp.principalAgentID) == -1)
                    {
                        hadSend.Add(tmp.principalAgentID);
                        var record2 = new MsgSendReceive {
                            messageID = msgID, createTime = definePara.dtNow()
                        };
                        record2.receiveID = tmp.principalAgentID;
                        _DbContext.msgsendreceive.Add(record2);
                        _DbContext.SaveChanges();
                    }
                }
            }
        }
        public void SendMessage_convertToDic(ref Dictionary <string, string> Dic, MsgSendReceive data)
        {
            var query = (from a in _DbContext.msgsendreceive
                         join b in _DbContext.message on a.messageID equals b.ID
                         where a.ID == data.ID
                         select new{
                b.title, b.content
            }).FirstOrDefault();

            Dic.Add("title", query == null? "" : query.title);
            Dic.Add("content", query == null? "" : query.content);
        }