public void Consume(T message) { try { ICreateEdiContentFrom <T> ediContentCreator = _businessPartnerResolver.ResolveFrom(message); if (ediContentCreator == null) { throw new InvalidOperationException("No matching document creator was found for business partner " + message.BusinessPartnerCode + ", Document ID " + message.DocumentId); } EDITransmissionPackage package = _createEdiDocumentFrom.CreateDocumentWith(ediContentCreator, message); checkForProblems(message, package); _ediDocumentSaver.Save(package); //_ediDocumentSaver.SaveAsXml(package); Logger.Info(this, "Document Saved: " + package.GetInterchangeControl().Value); _postConsumeAction.Execute(message); } catch (Exception ex) { Logger.Error(this, "Error processing message", ex); throw; } }
public void should_throw_exception_when_no_specifications_are_resolved() { ObjectFactory.Initialize(x => { x.For <IExecutePostConsumeAction>().Use <ExecutePostConsumeAction>(); }); _sut = ServiceLocator.Current.GetInstance <IExecutePostConsumeAction>(); _sut.Execute(DefaultOrderHasBeenShippedMessage); }