public ActionResult Index(string username, bool? addUser, bool? getUser, bool? logOff, bool? orderById,string message)
        {

            try
            {
                if (unitOfWork == null)
                    unitOfWork = new UnitOfWork();

                if (addUser != null && (bool)addUser)
                {
                    if (unitOfWork.ChatUserList.Find(username) == null)
                    {
                        unitOfWork.ChatUserList.AddUser(username);
                        return View();
                    }
                    else
                    {
                        object errorMessage = "username " + "\"" + username + "\"" + " already exists";
                        //var model = new UserListViewModel { userList = unitOfWork.ChatUserList.GetAllUsers() };
                        return View("Index", errorMessage);
                    }
                }

                if (getUser != null && (bool)getUser == true)
                {
                    var user = unitOfWork.ChatUserList.Find(username);
                    user.IsOnline = true;

                    var model = new MessageListViewModel
                    {
                        chatMessageList = unitOfWork.ChatMessageList.OrderByDate(),
                        userMessageList = unitOfWork.ChatMessageList.GetUserMessages(username)
                    };

                    return PartialView("MessageListPartial", model);
                }

                if (!Request.IsAjaxRequest())
                {

                    //var model = new UserListViewModel {  userList = unitOfWork.ChatUserList.GetAllUsers() };
                    object model = "Select the username from list or add new username";
                    return View(model);
                }                          

                if (!String.IsNullOrEmpty(message))
                {
                    var user = unitOfWork.ChatUserList.Find(username);
                    unitOfWork.ChatMessageList.AddMessage(user, message);

                    MessageListViewModel model;

                    if (orderById != null && (bool)orderById == true)
                    {
                        model = new MessageListViewModel
                        {
                            chatMessageList = unitOfWork.ChatMessageList.OrderById(),
                            userMessageList = unitOfWork.ChatMessageList.GetUserMessages(username)
                        };
                    }
                    else
                    {
                        model = new MessageListViewModel
                        {
                            chatMessageList = unitOfWork.ChatMessageList.OrderByDate(),
                            userMessageList = unitOfWork.ChatMessageList.GetUserMessages(username)
                        };
                    }

                    return PartialView("MessageListPartial", model);
                }
                
               
                return View();
            }

            catch (Exception ex)
            {
                //в случае ошибки посылаем статусный код 500
                Response.StatusCode = 500;
                return Content(ex.Message);
            }
        }
        public ActionResult UpdateMessageHistory(string username, bool? orderById)
        {
            MessageListViewModel model;

            if (orderById != null && (bool)orderById == true)
            {
                model = new MessageListViewModel
                {
                    chatMessageList = unitOfWork.ChatMessageList.OrderById(),
                    userMessageList = unitOfWork.ChatMessageList.GetUserMessages(username)
                };
            }
            else
            {
                model = new MessageListViewModel
                {
                    chatMessageList = unitOfWork.ChatMessageList.OrderByDate(),
                    userMessageList = unitOfWork.ChatMessageList.GetUserMessages(username)
                };
            }

            return PartialView("MessageListPartial", model);
        }