Example #1
0
 public Heartbeat ToBusiness(Entities.Heartbeat heartbeat)
 {
     return(new Heartbeat
     {
         HeartbeatId = heartbeat.HeartbeatId,
         HeartId = heartbeat.HeartId,
         Time = TimeUtilities.LongToDateTimeOffset(heartbeat.Time),
     });
 }
Example #2
0
        public async Task <Heartbeat> CreateHeartbeatAsync(string heartGroupName, string heartName, CancellationToken token)
        {
            var now = _systemClock.UtcNow;

            var heart = await _context
                        .Hearts
                        .Include(x => x.HeartGroup)
                        .FirstOrDefaultAsync(x => x.HeartGroup.Name == heartGroupName && x.Name == heartName, token);

            if (heart == null)
            {
                var heartGroup = await _context
                                 .HeartGroups
                                 .FirstOrDefaultAsync(x => x.Name == heartGroupName, token);

                if (heartGroup == null)
                {
                    heartGroup = new Entities.HeartGroup {
                        Name = heartGroupName
                    };
                }

                heart = new Entities.Heart {
                    HeartGroup = heartGroup, Name = heartName
                };
            }

            var heartbeat = new Entities.Heartbeat
            {
                Heart = heart,
                Time  = TimeUtilities.DateTimeOffsetToLong(now)
            };

            _context.Heartbeats.Add(heartbeat);

            await _context.SaveChangesAsync(token);

            return(_entityMapper.ToBusiness(heartbeat));
        }