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); }