public HttpResponseMessage SendRoomMessage(String chatId, Api_Models.TrnMessageModel objMessage)
        {
            try
            {
                var senderUser = from d in db.MstUsers
                                 where d.AspNetUserId == User.Identity.GetUserId()
                                 select d;

                Api_Data.TrnMessage newMessage = new Api_Data.TrnMessage()
                {
                    UserId          = senderUser.FirstOrDefault().Id,
                    ChatId          = Convert.ToInt32(chatId),
                    Message         = objMessage.Message,
                    MessageDateTime = DateTime.Now,
                    IsRead          = false,
                    ReadDateTime    = DateTime.Now
                };

                db.TrnMessages.InsertOnSubmit(newMessage);
                db.SubmitChanges();

                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
        public HttpResponseMessage SendMessage(String chatId, String receiverUserId, Api_Models.TrnMessageModel objMessage)
        {
            try
            {
                var senderUser = from d in db.MstUsers
                                 where d.AspNetUserId == User.Identity.GetUserId()
                                 select d;

                Int32 newChatId = 0;

                if (Convert.ToInt32(chatId) == 0)
                {
                    Api_Data.TrnChat newChat = new Api_Data.TrnChat()
                    {
                        ChatDate        = DateTime.Today,
                        CreatedByUserId = senderUser.FirstOrDefault().Id
                    };

                    db.TrnChats.InsertOnSubmit(newChat);
                    db.SubmitChanges();

                    Api_Data.MstUserChat newSenderUserChat = new Api_Data.MstUserChat()
                    {
                        SenderUserId   = senderUser.FirstOrDefault().Id,
                        ReceiverUserId = Convert.ToInt32(receiverUserId),
                        ChatId         = newChat.Id
                    };

                    db.MstUserChats.InsertOnSubmit(newSenderUserChat);
                    db.SubmitChanges();

                    Api_Data.MstUserChat newReceiverUserChat = new Api_Data.MstUserChat()
                    {
                        SenderUserId   = Convert.ToInt32(receiverUserId),
                        ReceiverUserId = senderUser.FirstOrDefault().Id,
                        ChatId         = newChat.Id
                    };

                    db.MstUserChats.InsertOnSubmit(newReceiverUserChat);
                    db.SubmitChanges();

                    newChatId = newChat.Id;
                }
                else
                {
                    newChatId = Convert.ToInt32(chatId);

                    var senderUserChat = from d in db.MstUserChats
                                         where d.SenderUserId == senderUser.FirstOrDefault().Id &&
                                         d.ReceiverUserId == Convert.ToInt32(receiverUserId)
                                         select d;

                    if (!senderUserChat.Any())
                    {
                        Api_Data.MstUserChat newSenderUserChat = new Api_Data.MstUserChat()
                        {
                            SenderUserId   = senderUser.FirstOrDefault().Id,
                            ReceiverUserId = Convert.ToInt32(receiverUserId),
                            ChatId         = newChatId
                        };

                        db.MstUserChats.InsertOnSubmit(newSenderUserChat);
                        db.SubmitChanges();
                    }

                    var receiverUserChats = from d in db.MstUserChats
                                            where d.SenderUserId == Convert.ToInt32(receiverUserId) &&
                                            d.ReceiverUserId == senderUser.FirstOrDefault().Id
                                            select d;

                    if (!receiverUserChats.Any())
                    {
                        Api_Data.MstUserChat newReceiverUserChat = new Api_Data.MstUserChat()
                        {
                            SenderUserId   = Convert.ToInt32(receiverUserId),
                            ReceiverUserId = senderUser.FirstOrDefault().Id,
                            ChatId         = newChatId
                        };

                        db.MstUserChats.InsertOnSubmit(newReceiverUserChat);
                        db.SubmitChanges();
                    }
                }

                Api_Data.TrnMessage newMessage = new Api_Data.TrnMessage()
                {
                    UserId          = senderUser.FirstOrDefault().Id,
                    ChatId          = newChatId,
                    Message         = objMessage.Message,
                    MessageDateTime = DateTime.Now,
                    IsRead          = false,
                    ReadDateTime    = DateTime.Now
                };

                db.TrnMessages.InsertOnSubmit(newMessage);
                db.SubmitChanges();

                if (Convert.ToInt32(chatId) == 0)
                {
                    return(Request.CreateResponse(HttpStatusCode.OK, newChatId));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.OK));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }