public void SendMsg(string userFrom, string userTo, string newMsg, string Type) { using (SwapEntities msgEnt = new SwapEntities()) { string msgFrom = userFrom; string msgTo = userTo; string msg = newMsg; string msgType = Type; Guid newId; if (msgTo != "") { if (msg != null && msg != "") { if (msgType == "QM") { var checkMsgnum = (from tbl in msgEnt.MsgEvents where tbl.UserFrom == msgFrom & tbl.UserTo == msgTo & tbl.IsRead == false select tbl).Count(); if (checkMsgnum == 0) { var checkLastMsgDate = (from tbl in msgEnt.MsgEvents orderby tbl.When descending where tbl.UserFrom == msgFrom & tbl.UserTo == msgTo & tbl.IsRead == true select tbl).FirstOrDefault(); if (checkLastMsgDate != null) { string today = DateTime.Now.ToShortDateString(); string lastMsgdate = checkLastMsgDate.When.ToShortDateString(); if (today != lastMsgdate) { UserClass uc = new UserClass(msgTo); UserClass ucm = new UserClass(msgFrom); string recipEmail = uc.PublicEmail; EmailUsersClass sndEmail = new EmailUsersClass(msgFrom); string body = sndEmail.PopulateBody(uc.PublicFirstName, "You have a new message from <b>" + ucm.PublicFirstName + "</b>, login at veSwap.com to" + " view and respond to this message!"); sndEmail.SendHtmlFormattedEmail(recipEmail, "New message from " + ucm.PublicFirstName + " at veSwap.com", body); } } } SentMessage msgSent = new SentMessage(); MsgEvent msgEvent = new MsgEvent(); newId = Guid.NewGuid(); msgEvent.UId = newId; msgEvent.When = DateTime.Now; msgEvent.UserFrom = msgFrom; msgEvent.UserTo = msgTo; msgEvent.MsgType = msgType; msgEvent.IsRead = false; msgSent.UId = newId; msgSent.IsRead = false; msgSent.Message = msg; msgEnt.AddToSentMessages(msgSent); msgEnt.AddToMsgEvents(msgEvent); msgEnt.SaveChanges(); } MsgEvent msgEventrec = new MsgEvent(); RecMessage msgRec = new RecMessage(); newId = Guid.NewGuid(); msgEventrec.UId = newId; msgEventrec.When = DateTime.Now; msgEventrec.UserFrom = msgFrom; msgEventrec.UserTo = msgTo; msgEventrec.MsgType = msgType; msgEventrec.IsRead = false; msgRec.UId = newId; msgRec.IsRead = false; msgRec.Message = msg; msgEnt.AddToRecMessages(msgRec); msgEnt.AddToMsgEvents(msgEventrec); msgEnt.SaveChanges(); if (msgType != "NM") { var updateContact = (from cnt in msgEnt.Contacts where cnt.UserTo == msgTo && cnt.UserFrom == msgFrom select cnt).SingleOrDefault(); if (updateContact == null) { Contact addContact = new Contact(); Guid contGuid = Guid.NewGuid(); addContact.Id = contGuid; addContact.UserTo = msgTo; addContact.UserFrom = msgFrom; addContact.LastReceived = DateTime.Now; msgEnt.AddToContacts(addContact); msgEnt.SaveChanges(); } else { updateContact.LastReceived = DateTime.Now; msgEnt.SaveChanges(); } var updateSntContact = (from snt in msgEnt.SentContacts where snt.UserTo == msgTo && snt.UserFrom == msgFrom select snt).SingleOrDefault(); if (updateSntContact == null) { SentContact addSntContact = new SentContact(); Guid sntcontGuid = Guid.NewGuid(); addSntContact.Id = sntcontGuid; addSntContact.UserTo = msgTo; addSntContact.UserFrom = msgFrom; addSntContact.LastSent = DateTime.Now; msgEnt.AddToSentContacts(addSntContact); msgEnt.SaveChanges(); } else { updateSntContact.LastSent = DateTime.Now; msgEnt.SaveChanges(); } } } } } }