public async Task <bool> CreateOrUpdateUrlAnalytics(UrlAnalytics urlAnalytics) { await _urlAnalyticsTable.CreateIfNotExistsAsync(); await _urlAnalyticsTable.ExecuteAsync(TableOperation.InsertOrReplace(urlAnalytics)); return(true); }
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 }); } }