Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public async Task <bool> Update(NormalizedLog model)
        {
            var dto = model.ToDomainModel();

            _db.NormalizedLog.Update(dto);
            await _db.SaveChangesAsync();

            return(true);
        }
Exemplo n.º 3
0
        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);
        }