public EFDbModel.MonitoringPulseResult Convert(MonitoringPulseResult pulse) { return(new EFDbModel.MonitoringPulseResult() { Responded = pulse.Responded, Silent = pulse.Silent, Skipped = pulse.Skipped }); }
public async Task <ActionResult> SavePulseResult( int sessionId, [FromBody] MonitoringPulseResult pulseResult ) { return(ObserveDataOperationResult( await _data.SavePulseResult(sessionId, pulseResult, pulseResult.Messages) )); }
public async Task <DataActionResult <MonitoringPulseResult> > SavePulseResult( int sessionId, MonitoringPulseResult pulseResult, IEnumerable <MonitoringMessage> messages ) { return(await PerformDataOperationOrLogExceptions(async() => await _efDataSource.SavePulseResult(sessionId, pulseResult, messages) )); }
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); }
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 )); }
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); }