/// <summary> /// This gets called in the Listerner, whenever there is a new message in servicebus queue it will be triggered. /// </summary> /// <param name="listernerModel"></param> /// <returns></returns> async Task ProcessMessageHandler(ServiceBusQueueListernerModel listernerModel) { //Debug.WriteLine(listernerModel.Message.Body); //create a childlifescope so that new objects are created per request. // using (var logger = ESFA.DC.Logging.LoggerManager.CreateDefaultLogger()) using (var childLifeTimeScope = _parentLifeTimeScope.BeginLifetimeScope()) { var logger = childLifeTimeScope.Resolve <ILogger>(); try { var ilrContext = JsonConvert.DeserializeObject <IlrContext>(Encoding.UTF8.GetString(listernerModel.Message.Body)); var validationService = childLifeTimeScope.Resolve <IValidationService>(); // this is workaround, //_validationService = _validationServiceFactory(); logger.StartContext(ilrContext.CorrelationId.ToString()); //_logger = LoggerManager.CreateDefaultLogger(ilrContext.CorrelationId.ToString()); await Validate(ilrContext, validationService); } catch (Exception ex) { ServiceEventSource.Current.ServiceMessage(this.Context, "Exception-{0}", ex.ToString()); logger.LogError("Error while processing job", ex); throw; } finally { // logger.Dispose(); } } //return Task<true>; }
async Task ProcessMessageHandler(ServiceBusQueueListernerModel listernerModel) { Debug.WriteLine(listernerModel.Message.Body); var ilrContext = JsonConvert.DeserializeObject <IlrContext>(Encoding.UTF8.GetString(listernerModel.Message.Body)); try { await Validate(ilrContext); } catch (Exception ex) { ServiceEventSource.Current.ServiceMessage(this.Context, "Exception-{0}", ex.ToString()); throw; } //return Task<true>; }