using AsbCloudApp.Data; using AsbCloudApp.Services; using AsbCloudDb.Model; using AsbCloudInfrastructure.Services.Cache; using System.Collections.Generic; using System.Linq; namespace AsbCloudInfrastructure.Services { public class EventService : IEventService { private readonly ITelemetryService telemetryService; private readonly CacheTable cacheEvents; public EventService(IAsbCloudDbContext db, CacheDb cacheDb, ITelemetryService telemetryService) { this.telemetryService = telemetryService; cacheEvents = cacheDb.GetCachedTable((AsbCloudDbContext)db); } public void Upsert(string uid, IEnumerable dtos) { if (!dtos.Any()) return; var telemetryId = telemetryService.GetOrCreateTemetryIdByUid(uid); var entities = dtos.Select(dto => new Event { IdEvent = dto.Id, IdTelemetry = telemetryId, IdCategory = dto.IdCategory, MessageTemplate = dto.Message }); cacheEvents.Upsert(entities); } } }