Exemplo n.º 1
0
        private void OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
        {
            using (var benchmark = Benchmark.Start())
            {
                IBaseEntity entity           = e.Entity as IBaseEntity;
                var         entityFormatters = Container.TryGetAll <IEntityFormatter>();

                if (entity != null)
                {
                    foreach (var formatter in entityFormatters)
                    {
                        if (formatter.OnLoad(e.Entity.GetType(), entity))
                        {
                            ((ObjectContext)sender).ObjectStateManager.GetObjectStateEntry(e.Entity).AcceptChanges();
                        }
                    }

                    entity.OnLoad(this);
                }

                benchmark.Stop();

                if (LoggingEnabled)
                {
                    Logger.Info(Logger.Completed(benchmark.TotalTime, true, "Entity Loaded: {0}".FormatString(e.Entity.GetType().Name)), RepositoryConstants.RepositoryComponent);
                }
            }
        }