public async Task <int> SaveAsync(IToasterEvent toasterEvent, int expectedResult = 1) { var result = await _context.SaveChangesAsync(); if (result == expectedResult) { var success = EventBuilder.BuildToasterEvent(toasterEvent); await _eventSender.SendAsync(success.ToJson()); } else { var failure = toasterEvent.TransformInFailure(); await _eventSender.SendAsync(failure); } return(result); }
/// <summary> /// Changes the Toaster instance to reflect the corresponding failure /// </summary> /// <returns>AppEvent instance as a JSON string</returns> public string TransformInFailure() { return(EventBuilder.BuildToasterEvent(new ToasterEvent(EntityType, ToasterType.Error, Verb, Identifier, Count)) .ToJson()); }
/// <summary> /// Returns an AppEvent instance as a JSON string /// </summary> public string GetEvent() { return(EventBuilder.BuildToasterEvent(this).ToJson()); }