コード例 #1
0
 public EFDbModel.MonitoringPulseResult Convert(MonitoringPulseResult pulse)
 {
     return(new EFDbModel.MonitoringPulseResult()
     {
         Responded = pulse.Responded,
         Silent = pulse.Silent,
         Skipped = pulse.Skipped
     });
 }
コード例 #2
0
 public async Task <ActionResult> SavePulseResult(
     int sessionId,
     [FromBody] MonitoringPulseResult pulseResult
     )
 {
     return(ObserveDataOperationResult(
                await _data.SavePulseResult(sessionId, pulseResult, pulseResult.Messages)
                ));
 }
コード例 #3
0
 public async Task <DataActionResult <MonitoringPulseResult> > SavePulseResult(
     int sessionId,
     MonitoringPulseResult pulseResult,
     IEnumerable <MonitoringMessage> messages
     )
 {
     return(await PerformDataOperationOrLogExceptions(async() =>
                                                      await _efDataSource.SavePulseResult(sessionId, pulseResult, messages)
                                                      ));
 }
コード例 #4
0
        private MonitoringPulseResult ConvertPulseResult(
            EFDbModel.MonitoringPulseResult pulseResult
            )
        {
            IEnumerable <MonitoringMessage> messages = pulseResult.Messages
                                                       .Select(m => _efToViewConverter.Convert(m));
            MonitoringPulseResult pulse = _efToViewConverter.Convert(pulseResult);

            pulse.Messages = messages;
            return(pulse);
        }
コード例 #5
0
        public async Task <DataActionResult <MonitoringPulseResult> > SavePulseResult(
            int sessionId,
            MonitoringPulseResult pulseResult,
            IEnumerable <MonitoringMessage> messages
            )
        {
            StatusMessage sessionIdValidationStatus =
                await ValidateSessionId(sessionId);

            if (sessionIdValidationStatus.Failure())
            {
                return(DataActionResult <MonitoringPulseResult> .Failed(sessionIdValidationStatus));
            }

            IEnumerable <MonitoringMessage> monitoringMessages = messages as MonitoringMessage[] ?? messages.ToArray();

            foreach (MonitoringMessage message in monitoringMessages)
            {
                StatusMessage messageValidationStatus = _validator.Validate(message);
                if (messageValidationStatus.Failure())
                {
                    return(DataActionResult <MonitoringPulseResult> .Failed(
                               messageValidationStatus
                               ));
                }
            }

            EFDbModel.MonitoringPulseResult convertedPulseResult =
                _viewToEfConverter.Convert(pulseResult);
            IEnumerable <EFDbModel.MonitoringMessage> convertedMessages = monitoringMessages
                                                                          .Select(m => _viewToEfConverter.Convert(m));

            return(FailOrConvert(
                       await Repo.SavePulseResult(sessionId, convertedPulseResult, convertedMessages),
                       ConvertPulseResult
                       ));
        }
コード例 #6
0
        public async Task <MonitoringPulseResult> SavePulseResult(
            int sessionId,
            MonitoringPulseResult pulseResult,
            IEnumerable <MonitoringMessage> messages
            )
        {
            pulseResult.CreationTime = JsDateTimeNow();
            MonitoringSession session = await _context.MonitoringSessions
                                        .Include(s => s.Pulses)
                                        .SingleAsync(s => s.ID == sessionId);

            //context.MonitoringPulses
            //    .Add(pulseResult);
            session.LastPulseTime = pulseResult.CreationTime;
            //await context.SaveChangesAsync();
            session.Pulses.Add(pulseResult);
            await _context.SaveChangesAsync();

            //foreach(MonitoringMessage message in messages) {
            //    context.MonitoringMessages.add
            //        .Add(message);
            //}
            //await context.SaveChangesAsync();
            MonitoringPulseResult pulseWithMessages = await _context.MonitoringPulses
                                                      .Include(p => p.Messages)
                                                      .SingleAsync(p => p.ID == pulseResult.ID);

            foreach (MonitoringMessage messageEntity in messages)
            {
                pulseWithMessages.Messages.Add(messageEntity);
            }

            await _context.SaveChangesAsync();

            _context.Entry(pulseWithMessages).State = EntityState.Detached;
            return(pulseWithMessages);
        }