public async Task <int> Create(NormalizedLog model) { var dto = model.ToDomainModel(); dto.CustomAttributeValues = new List <CustomAttributeValue>(); var entity = await _db.NormalizedLog.AddAsync(dto); await _db.SaveChangesAsync(); entity.State = EntityState.Detached; var valueDtos = new List <CustomAttributeValue>(); foreach (var customAttributeValue in model.CustomAttributeValues) { var valueDto = customAttributeValue.ToDomainModel(); valueDto.NormalizedLogId = entity.Entity.NormalizedLogId; valueDtos.Add(valueDto); } await _db.CustomAttributeValue.AddRangeAsync(valueDtos); await _db.SaveChangesAsync(); return(entity.Entity.NormalizedLogId); }
public async Task <bool> Update(NormalizedLog model) { var dto = model.ToDomainModel(); _db.NormalizedLog.Update(dto); await _db.SaveChangesAsync(); return(true); }
public async Task <IEnumerable <NormalizedLog> > PrecedingLogs(NormalizedLog log, int[] componentIds, int?howMany) { var filtered = _db.NormalizedLog .Where(elem => componentIds.Contains(elem.ComponentId)) .Where(elem => elem.Timestamp < log.DateTime) .OrderByDescending(elem => elem.Timestamp); var taken = howMany.HasValue ? filtered.Take(howMany.Value) : filtered; var transformed = await taken.OrderBy(elem => elem.Timestamp) .Include(l => l.CustomAttributeValues).ToListAsync(); var result = transformed.Select(elem => elem.ToBusinessModel()); return(result); }