示例#1
0
        /// <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>;
        }