public async Task <Result <bool> > CreateOrUpdateUrlAnalytics(UrlAnalyticsQueueMessage message)
        {
            try
            {
                if (string.IsNullOrEmpty(message?.UserAgent))
                {
                    throw new Exception("user agent is empty");
                }
                var ua           = Parser.GetDefault()?.Parse(message?.UserAgent);
                var urlAnalytics = new UrlAnalytics
                {
                    Browser      = ua?.UserAgent.Family,
                    BrowserVer   = ua?.UserAgent.Major,
                    Os           = ua?.OS?.Family,
                    OsVer        = ua?.OS?.Major,
                    Referrer     = message.Referer,
                    PartitionKey = message.ShortUrlCode.Substring(0, 3),
                    RowKey       = message.ShortUrlCode
                };

                var result = await _urlAnalyticsRepository.CreateOrUpdateUrlAnalytics(urlAnalytics);

                return(new Result <bool>
                {
                    Success = true,
                    Data = result
                });
            }
            catch (Exception ex)
            {
                _logger.LogError($"{ex.Message} - {ex}");
                return(new Result <bool>
                {
                    Success = false,
                    Error = ex.Message
                });
            }
        }
 public static async Task Run([QueueTrigger("urlanalytics", Connection = "")] UrlAnalyticsQueueMessage message
                              , ILogger log)
 {
     log.LogInformation($"ProcessUrlAnalytics triggerred for : {message}");
     await _urlAnalyticsService.CreateOrUpdateUrlAnalytics(message);
 }