コード例 #1
0
 /// <summary>
 /// Event called when an entity has been loaded.
 /// </summary>
 /// <param name="sender">The sender</param>
 /// <param name="e">Event arguments</param>
 void OnEntityLoad(object sender, ObjectMaterializedEventArgs e)
 {
     if (e.Entity is Entities.BaseEntity)
     {
         ((Entities.BaseEntity)e.Entity).OnLoad(this);
     }
 }
コード例 #2
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);
                }
            }
        }
コード例 #3
0
ファイル: DbUtils.cs プロジェクト: stantoxt/Piranha.vNext
 /// <summary>
 /// Processes the loaded entities before returning them.
 /// </summary>
 public static void OnLoad(DbContext context, ObjectMaterializedEventArgs e)
 {
     if (e.Entity is Models.Model)
     {
         ((Models.Model)e.Entity).OnLoad();
     }
 }
コード例 #4
0
 private void OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
 {
     if (e.Entity is EntityBase model)
     {
         model.IsChanged = false;
     }
 }
コード例 #5
0
 void oc_ObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
 {
     if (e.Entity is SecurEntity)
     {
         ((SecurEntity)e.Entity).Decrypt();
     }
 }
コード例 #6
0
ファイル: UnitOfWork.cs プロジェクト: harchay/NForum
        private void ObjectContext_ObjectMaterialized(Object sender, ObjectMaterializedEventArgs e)
        {
            // TODO: StopWatch!!
            Object entity = e.Entity;

            // Get any DateTime properties!
            PropertyInfo[] props = entity.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(p => p.PropertyType == typeof(DateTime)).ToArray();
            foreach (PropertyInfo info in props)
            {
                Object   value = info.GetValue(entity);
                DateTime?dt    = value as DateTime?;
                if (value != null)
                {
                    // Let's fix the DateTime properties, it's straight out of the database,
                    // so they should all be UTC
                    info.SetValue(entity, dt.Value.FixTimeZone());
                }
            }

            // Get any nullable DateTime properties!
            props = entity.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public).Where(p => p.PropertyType == typeof(DateTime?)).ToArray();
            foreach (PropertyInfo info in props)
            {
                Object   value = info.GetValue(entity);
                DateTime?dt    = value as DateTime?;
                if (value != null)
                {
                    // Let's fix the DateTime properties, it's straight out of the database,
                    // so they should all be UTC
                    info.SetValue(entity, dt.FixTimeZone());
                }
            }
        }
コード例 #7
0
ファイル: ShopContext.cs プロジェクト: sulmar/altkom-atos-ef
 private void ObjectContext_ObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
 {
     if (e.Entity is Order order)
     {
         order.OrderNumber = order.OrderNumber + "!";
     }
 }
コード例 #8
0
 private void berkeleyEntities_ObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
 {
     if (e.Entity is Item && this.MaterializeAttributes)
     {
         _productFactory.GetProductData(e.Entity as Item);
     }
 }
コード例 #9
0
 public void OnMaterialized(object sender, ObjectMaterializedEventArgs args)
 {
     if (sender == Context)
     {
         MaterializedEntities.Add(args.Entity);
     }
 }
コード例 #10
0
 /// <summary>
 /// The object materialized.
 /// </summary>
 /// <param name="sender">
 /// The sender.
 /// </param>
 /// <param name="e">
 /// The e.
 /// </param>
 private void ObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
 {
     foreach (var action in this.ModelCreationActions)
     {
         action.ProcessModelUponCreation(this.Entry(e.Entity));
     }
 }
コード例 #11
0
 private void MyContext_ObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
 {
     if (_allUsers != null & _allUsers.Count() > 0)
     {
         Type type = e.Entity.GetType();
         // Create user info
         PropertyInfo piBase = type.GetProperty("CreateUser");
         PropertyInfo piObj  = type.GetProperty("CreateUserId");
         if (piBase != null && piObj != null)
         {
             int  userId     = (int)piObj.GetValue(e.Entity);
             User createUser = _allUsers.FirstOrDefault(x => x.Id == userId);
             if (createUser != null)
             {
                 piBase.SetValue(e.Entity, createUser.Username);
             }
         }
         piBase = type.GetProperty("CancelUser");
         piObj  = type.GetProperty("CancelUserId");
         if (piBase != null && piObj != null)
         {
             int?userId = (int?)piObj.GetValue(e.Entity);
             if (userId.HasValue)
             {
                 User cancelUser = _allUsers.FirstOrDefault(x => x.Id == userId.Value);
                 if (cancelUser != null)
                 {
                     piBase.SetValue(e.Entity, cancelUser.Username);
                 }
             }
         }
     }
 }
コード例 #12
0
 private void ObjectContext_OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
 {
     if (StartTracking == true)
     {
         ((dynamic)e.Entity).StartTracking();
     }
 }
コード例 #13
0
 void Context_ObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
 {
     if (!(e.Entity is EntityBase entity))
     {
         return;
     }
     SetEntityContext(entity);
 }
コード例 #14
0
 protected void OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
 {
     if (e.Entity is MediaSchedule)
     {
         var schedule = ((MediaSchedule)e.Entity);
         schedule.Context = this;
     }
 }
コード例 #15
0
 private void ObjectContextOnObjectMaterialized(object sender, ObjectMaterializedEventArgs objectMaterializedEventArgs)
 {
     if (objectMaterializedEventArgs.Entity.GetType().Name == "User")
     {
         var user = (User)objectMaterializedEventArgs.Entity;
         Decrypt(user);
     }
 }
コード例 #16
0
 void BAEntities_ObjectMaterialized(object sender, ObjectMaterializedEventArgs args)
 {
     if (args.Entity is Lodging)
     {
         Lodging lodging = (Lodging)args.Entity;
         lodging.Materialized();
     }
 }
コード例 #17
0
 private void OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
 {
     if (e.Entity is Bundle)
     {
         var bundle = (Bundle)e.Entity;
         bundle.Context = this;
     }
 }
コード例 #18
0
        private void OnObjectContextObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
        {
            var entityChatUser = e.Entity as ChatUser;

            if (entityChatUser != null)
            {
                entityChatUser.LastActivity = DateTime.SpecifyKind(entityChatUser.LastActivity, DateTimeKind.Utc);
            }
        }
コード例 #19
0
        void _context_ObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
        {
            var item = e.Entity as EntityBase;

            if (item != null)
            {
                item.IsChanged = false;
            }
        }
コード例 #20
0
        private void OnEntityLoaded(object sender, ObjectMaterializedEventArgs e)
        {
            InterceptLoad(globalInterceptors, e.Entity);

            Type entityType = ObjectContext.GetObjectType(e.Entity.GetType());
            IEnumerable <IEntityInterceptor> entityInterceptors = interceptorsResolver.GetEntityInterceptors(entityType);

            InterceptLoad(entityInterceptors, e.Entity);
        }
コード例 #21
0
        private void ObjectMaterializedHandler(object sender, ObjectMaterializedEventArgs e)
        {
            EntityLoadedEventHandler handler = this.EntityLoaded;

            if (handler != null)
            {
                handler(this, new EntityLoadedEventHandlerArgs(e.Entity));
            }
        }
コード例 #22
0
        private static void OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
        {
            var doc = e.Entity as IHybridDocument;

            if (doc != null && doc.DocumentData != null)
            {
                JsonConvert.PopulateObject(doc.DocumentData, doc);
            }
        }
コード例 #23
0
        private void ObjectContext_OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
        {
            var entityTimestampBase = e.Entity as EntityTimestampBase;

            if (entityTimestampBase != null)
            {
                entityTimestampBase.IsMaterialized = true;
            }
        }
コード例 #24
0
 private void HandleStationParametersDeserialization(object sender, ObjectMaterializedEventArgs e)
 {
     // Custom deserialization for Stations
     var station = e.Entity as Station;
     if (station?.SerializedParameters != null)
     {
         station.Parameters = JsonConvert.DeserializeObject<Station.SetupParameters>(station.SerializedParameters);
     }
 }
コード例 #25
0
        private void OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
        {
            var model = (e.Entity as EntityBase);

            if (model != null)
            {
                model.IsChanged = false;
            }
        }
コード例 #26
0
        static void OcObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
        {
            ISecurEntity entity = e.Entity as ISecurEntity;

            if (entity != null)
            {
                entity.Decrypt();
            }
        }
コード例 #27
0
ファイル: EfUnitOfWork.cs プロジェクト: kblwxl/Larva
        private static void ObjectContext_ObjectMaterialized(DbContext dbContext, ObjectMaterializedEventArgs e)
        {
            var entityType    = ObjectContext.GetObjectType(e.Entity.GetType());
            var previousState = dbContext.Entry(e.Entity).State;

            DateTimePropertyInfoHelper.NormalizeDatePropertyKinds(e.Entity, entityType);

            dbContext.Entry(e.Entity).State = previousState;
        }
コード例 #28
0
        /// <summary>
        /// Uses reflection to read all date time properties and set the kind to UTC
        /// </summary>
        /// <param name="sender">The sender</param>
        /// <param name="e">The object materialized event arguments</param>
        private static void ReadAllDateTimeValuesAsUtc(object sender, ObjectMaterializedEventArgs e)
        {
            var properties = e.Entity
                             .GetType()
                             .GetProperties()
                             .Where(_ => _.PropertyType == typeof(DateTime) || _.PropertyType == typeof(DateTime?));

            properties.ToList().ForEach(_ => SpecifyUtcKind(_, e.Entity));
        }
コード例 #29
0
ファイル: DataBase.cs プロジェクト: zivalin/Terminals
        private void OnDataBaseObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
        {
            var entity = e.Entity as IEntityContext;

            if (entity != null)
            {
                entity.Database = this;
            }
        }
コード例 #30
0
        private static void ReadAllDateTimeValuesAsUtc(object sender, ObjectMaterializedEventArgs e)
        {
            //Extract all DateTime properties of the object type
            var properties = e.Entity.GetType().GetProperties()
                             .Where(property => property.PropertyType == typeof(DateTime) ||
                                    property.PropertyType == typeof(DateTime?)).ToList();

            //Set all DaetTimeKinds to Utc
            properties.ForEach(property => SpecifyUtcKind(property, e.Entity));
        }