public void RegisterHandlers()
        {
            hubConnection.On <string>("GetEmojis", async(phoneNumber) =>
            {
                logger.LogInformation($"[{phoneNumber}] - requesting Emojis.");

                //List<EmojiCategoryDto> emojis = new List<EmojiCategoryDto> {
                //    new EmojiCategoryDto
                //    {
                //        Name = "Category1",
                //        Emojis = new List<EmojiDto>
                //        {
                //            new EmojiDto
                //            {
                //                Category = "Category1",
                //                Decimal = "15",
                //                Hex = "0x1F600",
                //                Name = "smiley",
                //                Unicode = "15921"
                //            },
                //            new EmojiDto
                //            {
                //                Category = "Category1",
                //                Decimal = "16",
                //                Hex = "0x1F604",
                //                Name = "smiley2",
                //                Unicode = "2159195"
                //            }
                //        }
                //    }
                //};
                List <EmojiCategoryDto> emojis = await emojiService.GetEmojis();

                await hubConnection.SendAsync("EmojisResponse", phoneNumber, emojis);
            });

            hubConnection.On <string, ContactDto>("AddContact", async(phoneNumber, newContactDto) =>
            {
                logger.LogInformation($"[{phoneNumber}] - requesting to add new contact {newContactDto.ContactPhoneNumber}.");

                ResponseDto <ContactDto> response = await contactService.AddContact(phoneNumber, newContactDto);
                if (response != null && response.Success)
                {
                    logger.LogInformation($"[{phoneNumber}] - added new contact (Success) {newContactDto.ContactPhoneNumber}.");
                    contactMQPublisher.SendContact(response.Dto);
                }
                else
                {
                    logger.LogError($"[{phoneNumber}] - couldn't add new contact (Fail) {newContactDto.ContactPhoneNumber} within account [{phoneNumber}]. " +
                                    $"Returning error message");
                }

                await hubConnection.SendAsync("AddContactResponse", phoneNumber, response);
            });

            hubConnection.On <string, ContactDto>("UpdateContact", async(phoneNumber, updateContactDto) =>
            {
                logger.LogError($"[{phoneNumber}] - requesting contact update {updateContactDto.ContactPhoneNumber} within account [{phoneNumber}].");

                ResponseDto <ContactDto> response = await contactService.UpdateContact(phoneNumber, updateContactDto);
                if (response != null && response.Success)
                {
                    logger.LogError($"[{phoneNumber}] - updated contact (Success) {updateContactDto.ContactPhoneNumber} within account [{phoneNumber}].");
                    contactMQPublisher.SendContact(response.Dto);
                }
                else
                {
                    logger.LogError($"[{phoneNumber}] - couldn't update contact (Fail) {updateContactDto.ContactPhoneNumber} within account [{phoneNumber}].");
                }

                await hubConnection.SendAsync("UpdateContactResponse", phoneNumber, response);
            });

            hubConnection.On <string>("RequestContacts", async(phoneNumber) =>
            {
                logger.LogInformation($"[{phoneNumber}] requesting Contacts for account: {phoneNumber}.");

                List <ContactDto> contacts = await contactService.GetAllByUser(phoneNumber);
                if (contacts != null)
                {
                    logger.LogInformation($"[{phoneNumber}] - returning list of contacts (Success): {JsonConvert.SerializeObject(contacts)}");
                    await hubConnection.SendAsync("RequestContactsSuccess", phoneNumber, contacts);
                    return;
                }

                logger.LogError($"[{phoneNumber}] - contacts couldn't be retrieved (Fail). Returning error message");
                await hubConnection.SendAsync("RequestContactsFail", phoneNumber,
                                              $"Couldn't load contacts, for account: {phoneNumber}, requested by: {phoneNumber}");
            });

            hubConnection.On <string, int>("LoadMessages", async(phoneNumber, pageNumber) =>
            {
                logger.LogInformation($"[{phoneNumber}] requesting more messages, page: {pageNumber}.");

                //PagedList<MessageDto> pagedMessages = await contactService.GetMessages(pageNumber);
                //if (pagedMessages != null)
                //{
                //    logger.LogInformation($"[{phoneNumber}] - returning page {pageNumber} of messages (Success): {JsonConvert.SerializeObject(pagedMessages)}");
                //    await hubConnection.SendAsync("LoadMessagesSuccess", phoneNumber, pagedMessages);
                //    return;
                //}

                //logger.LogError($"[{phoneNumber}] - page {pageNumber} of messages couldn't be retrieved (Fail). Returning error message");
                //await hubConnection.SendAsync("LoadMessagesFail", phoneNumber,
                //    $"Couldn't load page {pageNumber} of messages, for account: {phoneNumber}, requested by: {phoneNumber}");
            });

            hubConnection.On <MessageDto>("SendMessage", async(newMessageDto) =>
            {
                logger.LogInformation($"[{newMessageDto.Sender}] sending message to: {newMessageDto.Receiver}.");

                if (await messagingService.SaveMessage(newMessageDto))
                {
                    logger.LogInformation($"[{newMessageDto.Sender}] - message sent (Success) to: {newMessageDto.Receiver}.");
                    return;
                }

                logger.LogError($"[{newMessageDto.Sender}] - SendMessage couldn't be executed (Fail).");
            });
        }