public void End(object payload, DataProviderStopWatch stopWatch, DataProviderCommandSource dataProvider,DataProviderNoRecordState billNoRecords)
 {
     stopWatch.Stop();
     new EndingCallCommand(Guid.NewGuid(), _requestId, CommandDescriptions.EndExecutionDescription(dataProvider),
         payload.ObjectToJson(), dataProvider, DateTime.UtcNow,
         new PerformanceMetadata(stopWatch.ToObject()).ObjectToJson(), Category.Performance,billNoRecords).SendToBus(
             _publisher, _log);
 }
        public void DataProviderResponse(DataProviderIdentifier dataProvider,
            ConnectionTypeIdentifier connection, object payload,
            DataProviderStopWatch stopWatch)
        {
            stopWatch.Stop();

            new GetResponseFromDataProviderCommmand(Guid.NewGuid(), _requestId,
                dataProvider,
                DateTime.UtcNow, connection,
                new PayloadIdentifier(new PerformanceMetadata(stopWatch.ToObject()).ObjectToJson(),
                    payload.ObjectToJson(),
                    CommandDescriptions.EndExecutionDescription((DataProviderCommandSource) dataProvider.Id)))
                .SendToBus(_publisher, _log);
        }
        public void EntryPointResponse(object payload, DataProviderStopWatch stopWatch, DataProviderResponseState state, ICollection<IPointToLaceRequest> request, DataProviderNoRecordState billNoRecords)
        {
            stopWatch.Stop();
            new ReturnEntryPointResponse(Guid.NewGuid(), _requestId, DateTime.UtcNow,
                new StateIdentifier((int) state, state.ToString()),
                new PayloadIdentifier(new PerformanceMetadata(stopWatch.ToObject()).ObjectToJson(),
                    payload.ObjectToJson(),
                    CommandDescriptions.ReturnEntryPointResponseDescription()),SearchRequestIndentifier.Determine(request),new NoRecordBillableIdentifier((int)billNoRecords,billNoRecords.ToString()))
                .SendToBus(_publisher, _log);

        }