/// <summary> /// Emits a radar pulse via a PulseEmittedDomainEvent /// </summary> /// <param name="location">The center point of the pulse</param> /// <remarks> /// Emitting a pulse triggers a PulseEmittedDomainEvent. Higher layers /// in Hankies handle the PulseEmittedDomainEvent and return a /// IRadarPulse to the radar object before saving to the database /// context. /// </remarks> public IStatus <PulseEmitedDomainEvent> EmitPulse(ICoordinates location) { var resultStatus = new Status <PulseEmitedDomainEvent>(); var pulseEvent = new PulseEmitedDomainEvent(location.Lattitude, location.Longitude, Range, this); try { if (pulseEvent.IsValid) { Owner.AddDomainEvent(pulseEvent); } else { resultStatus.AddError("Invalid PulseEmitedDomainEvent, " + "could not add to domain events"); } } catch (Exception ex) { resultStatus.AddException(ex); } resultStatus.RespondWithObject(pulseEvent); return(resultStatus); }