public async Task PersistTokenDetail(LivechatUserToken livechatUserToken)
        {
            if (string.IsNullOrEmpty(livechatUserToken.Stores))
            {
                return;
            }

            // Formatting
            var stores = string.Join(",",
                                     livechatUserToken.Stores
                                     .Split(',')
                                     .Select(t => $"|{t}|"));

            livechatUserToken.Stores = stores;

            var dbToken = context.LivechatUserToken
                          .Where(t => t.AuthToken == livechatUserToken.AuthToken &&
                                 t.Device == livechatUserToken.Device &&
                                 t.PushToken == livechatUserToken.PushToken &&
                                 t.Stores == stores)
                          .FirstOrDefault();

            if (dbToken != null)
            {
                return;
            }

            await context.LivechatUserToken.AddAsync(livechatUserToken);

            await context.SaveChangesAsync();
        }
        public async Task RemoveTokenDetail(LivechatUserToken livechatUserToken)
        {
            var dbToken = context.LivechatUserToken
                          .Where(t => t.AuthToken == livechatUserToken.AuthToken &&
                                 t.Device == livechatUserToken.Device &&
                                 t.PushToken == livechatUserToken.PushToken)
                          .FirstOrDefault();

            if (dbToken == null)
            {
                return;
            }

            context.LivechatUserToken.Remove(dbToken);
            await context.SaveChangesAsync();
        }