public bool CreateNewChat(string Message, List <string> Recievers) { try { List <string> Names = new List <string>(); Names = Recievers; Names.Add(Current_User_id); Names.Sort(); string ChatThread = null; foreach (var reciever in Names) { // ChatThread = ChatThread +","+ reciever; if (ChatThread == null) { ChatThread = reciever; } else { ChatThread = ChatThread + "," + reciever; } } MessageSendingModel sendmessage = new MessageSendingModel(); sendmessage.SenderID = Current_User_id; sendmessage.Massage = Message; sendmessage.MessageThreadID = ChatThread; sendmessage.Date_Time = DateTime.Now; _data.SendMessage.Add(sendmessage); List <MessageRecieveModel> recivemessage = new List <MessageRecieveModel>(); foreach (var reciever in Recievers) { recivemessage.Add(new MessageRecieveModel() { RecieverID = reciever, MessageThreadID = ChatThread, HasRead = null, ReadingDateTime = null, }); } _data.RecieveMessage.AddRange(recivemessage); _data.SaveChanges(); return(true); } catch (Exception ex) { return(false); } }
public bool Save_Message(Chat_Data_Pass model) { try { string senderID = Current_User_id; string RecieverID = model.PartnerId; string MessageThreadID; if (_data.SendMessage.Any(x => (x.MessageThreadID.Contains(senderID)) && (x.MessageThreadID.Contains(RecieverID)))) { var allMessage = _data.SendMessage.FirstOrDefault(x => (x.MessageThreadID.Contains(senderID)) && (x.MessageThreadID.Contains(RecieverID))); MessageThreadID = allMessage.MessageThreadID; } else { MessageThreadID = senderID + ',' + RecieverID; } MessageSendingModel sendmessage = new MessageSendingModel(); MessageRecieveModel recivemessage = new MessageRecieveModel(); sendmessage.SenderID = senderID; sendmessage.Massage = model.Message; sendmessage.MessageThreadID = MessageThreadID; sendmessage.Date_Time = DateTime.Now; _data.SendMessage.Add(sendmessage); recivemessage.RecieverID = RecieverID; recivemessage.MessageThreadID = MessageThreadID; _data.RecieveMessage.Add(recivemessage); _data.SaveChanges(); return(true); } catch { return(false); } }