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); }