private void ProcessOutgoingMessageChat2Desk(OutgoingMessage request)
        {
            var chat2deskToken = WebConfigurationManager.AppSettings["chat2deskToken"];

            if (request.ClientId == null)
            {
                //post client with phone
                if (request.Phone != null && request.ContactId != null)
                {
                    using (WebClient client = new WebClient())
                    {
                        var postClient = new PostClient()
                        {
                            Phone     = request.Phone,
                            Transport = request.Transport
                        };

                        client.Encoding = Encoding.UTF8;
                        client.Headers["Content-type"]  = "application/json";
                        client.Headers["Authorization"] = chat2deskToken;
                        var urlString = "https://api.chat2desk.com/v1/clients";

                        var responseJson = client.UploadString(urlString, "POST", postClient.ToJson());

                        var response = PostClientResponse.FromJson(responseJson);

                        if (response.Status == "success")
                        {
                            var newClientId = response.Data.Id;

                            request.ClientId = newClientId.ToString();

                            var crmHelper = new CRM.CrmHelper();
                            crmHelper.UpdateContactWithClientId(request.ContactId, newClientId.ToString());
                        }
                    }
                }
            }


            if (request.ClientId != null)
            {
                using (WebClient client = new WebClient())
                {
                    client.Encoding = Encoding.UTF8;
                    client.Headers["Content-type"]  = "application/json";
                    client.Headers["Authorization"] = chat2deskToken;
                    var urlString = "https://api.chat2desk.com/v1/messages";

                    var responseJson = client.UploadString(urlString, "POST", request.ToJson());

                    var response = PostMessageChat2DeskResponse.FromJson(responseJson);
                }
            }
            else
            {
                throw new Exception("Сообщение не может быть отправлено, отсутствует ID клиента");
            }
        }
        // POST: api/WebHook
        public void Post([FromBody] WebHookRequestBody value)
        {
            var crmHelper = new CRM.CrmHelper();

            switch (value.HookType)
            {
            case "inbox":
            case "outbox":
                //Создать сообщение в CRM
                crmHelper.ProcessMessage(value);
                //Отобразить сообщение на вебресурсе через SignalR

                var       hubConnection = new HubConnection(_serverUrl);
                IHubProxy logHubProxy   = hubConnection.CreateHubProxy("chat2DeskHub");
                hubConnection.Start().Wait();
                logHubProxy.Invoke("Send", value.Text,
                                   DateTime.Now.ToLocalTime().ToString());
                break;
            }
        }
        // POST: api/WebHook
        public void Post([FromBody] WebHookRequestBody value)
        {
            var crmHelper = new CRM.CrmHelper();

            switch (value.HookType)
            {
            case "inbox":
            case "outbox":
                //Создать сообщение в CRM
                crmHelper.ProcessMessage(value);
                //Отобразить сообщение на вебресурсе через SignalR

                //var hubConnection = new HubConnection("https://79.173.84.161:9998");
                //IHubProxy logHubProxy = hubConnection.CreateHubProxy("chat2DeskHub");
                //hubConnection.Start().Wait();
                //logHubProxy.Invoke("Send", value.Text,
                //    DateTime.Now.ToLocalTime().ToString());
                // Get the context for the Pusher hub
                IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext <LogHub>();
                hubContext.Clients.All.addLog(value.Text, DateTime.Now.ToLocalTime().ToString());
                break;
            }
        }