public ActionResult GetMsgHistory(int id)
        {
            int userId = ExractIdFromToken();

            if (userId == 0)
            {
                return(BadRequest());
            }

            try {
                List <MsgObject> msgList = MsgFunctions.GetChatHistory(userId, id, null);
                return(new JsonResult(msgList));
            }
            catch (Exception ex) {
                //write ex to log...
                return(BadRequest());
            }
        }
        public async Task <ActionResult> SendMsg(chatMsgInput iMsgIobj)
        {
            try
            {
                int userId = ExractIdFromToken();
                if (userId == 0)
                {
                    return(BadRequest());
                }

                SignalRChatContext DB = new SignalRChatContext();

                using (var transaction = DB.Database.BeginTransaction())
                {
                    try
                    {
                        MsgObject res = MsgFunctions.SendMsg(userId, iMsgIobj.toUserId, iMsgIobj.msg, DB);

                        transaction.Commit();

                        await hubContext.Clients.All.SentMsgEvent(userId, iMsgIobj.toUserId, iMsgIobj.msg);

                        return(new JsonResult(res));
                    }
                    catch (Exception exc)
                    {
                        //write exc to log...
                        transaction.Rollback();
                        return(BadRequest());
                    }
                }
            }
            catch (Exception ex)
            {
                //write ex to log...
                return(BadRequest());
            }
        }