private static void SetLastModifiedBy(SquidexEvent @event, IMongoEntity entity) { if (entity is IEntityWithLastModifiedBy withModifiedBy) { withModifiedBy.LastModifiedBy = @event.Actor; } }
private static void SetAppId(SquidexEvent @event, IMongoEntity entity) { if (entity is IAppRefEntity app && @event is AppEvent appEvent) { app.AppId = appEvent.AppId.Id; } }
private static void SetVersion(EnvelopeHeaders headers, IMongoEntity entity) { if (entity is IEntityWithVersion withVersion) { withVersion.Version = headers.EventStreamNumber(); } }
private static void SetCreatedBy(SquidexEvent @event, IMongoEntity entity) { if (entity is IEntityWithCreatedBy withCreatedBy) { withCreatedBy.CreatedBy = @event.Actor; } }
static GetMongo() { _mapping = new Dictionary <MappingEntity, IMongoEntity>() { { MappingEntity.Game, new Product() }, { MappingEntity.Genre, new Category() }, { MappingEntity.Publisher, new Supplier() }, { MappingEntity.OrderDetail, new OrderDetailMongo() }, { MappingEntity.Order, new OrderMongo() } }; if (IsMongo()) { var entityEnum = Enum.Parse(typeof(MappingEntity), typeof(T).Name); _mongoType = _mapping[(MappingEntity)entityEnum]; } }
/// <summary> /// 加载 /// </summary> /// <param name="entity"></param> public virtual void Load(IMongoEntity entity) { }
public static object GetAttributeValue <T>(IMongoEntity entity, string propertyName) where T : Attribute { var attribute = (T)entity.GetType().GetCustomAttribute(typeof(T)); return(attribute != null?attribute.GetType().GetProperty(propertyName).GetValue(attribute, null) : null); }
private static void SetLastModified(EnvelopeHeaders headers, IMongoEntity entity) { entity.LastModified = headers.Timestamp(); }
private static void SetCreated(EnvelopeHeaders headers, IMongoEntity entity) { entity.Created = headers.Timestamp(); }
private static void SetId(EnvelopeHeaders headers, IMongoEntity entity) { entity.Id = headers.AggregateId(); }
// PRIVATE METHODS private WriteConcernResult update( IMongoEntity entity, UpdateFlags update_flags ) { var query = new QueryDocument( "_id", entity.Id ); var update_document = entity.as_update_document(); return collection.Update( query, update_document, update_flags ); }
private void SendentityCreatedNotification(SomeModelOne createdentity, string someEntityBuildingId, IMongoEntity user) { var update = new UpdateModel() { updateType = UpdateType.entityCreated, parentId = createdentity._id, message = $"New entity created: {createdentity.header}", buildingId = buildingId, updateOwnerId = user._id }; updateSenderProxy.sendNotificationsToCertainUserSync(update, null); }