public void CreateEntity(INetworkingEntity networkingEntity) { if (networkingEntity.StreamingType == StreamingType.EntityStreaming) { return; } byte[] bytes; if (networkingEntity.StreamingType == StreamingType.DataStreaming) { // Remove data before sending it over the wire var entityWithoutData = networkingEntity.StreamedEntity.Clone(); entityWithoutData.Data.Clear(); var entityCreateEvent = new EntityCreateEvent { Entity = entityWithoutData }; var serverEvent = new ServerEvent { Create = entityCreateEvent }; bytes = serverEvent.ToByteArray(); } else { var entityCreateEvent = new EntityCreateEvent { Entity = networkingEntity.StreamedEntity }; var serverEvent = new ServerEvent { Create = entityCreateEvent }; bytes = serverEvent.ToByteArray(); } AltNetworking.Module.ClientPool.SendToAll(bytes); }
public override async Task HandleAsync(EntityCreateEvent <TSource> @event) { var source = @event.Source; _dbContext.Set <TSource>().Add(source); await _dbContext.SaveChangesAsync(); }
public override void Handle(EntityCreateEvent <TSource> @event) { var source = @event.Source; _dbContext.Set <TSource>().Add(source); _dbContext.SaveChanges(); }
// IEntity save; private void EditableDataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e) { this.EditMode = false; if (e.EditAction == DataGridEditAction.Cancel) { CurEvent = null; return; } if (CurEvent != null) { if (CurEvent is EntityCreateEvent) { EntityCreateEvent ev = CurEvent as EntityCreateEvent; try { ev.Entity.Model.Create(ev.Entity); } catch (Exception ex) { app.ProcessException(ex); } } if (CurEvent is EntityUpdateEvent) { EntityUpdateEvent ev = CurEvent as EntityUpdateEvent; try{ ev.Entity.Model.Update(ev.Entity); } catch (Exception ex) { app.ProcessException(ex); } } // Notifie la modification au model //IEventProcess process = Application.Current as IEventProcess; /*IEventProcess process = this.DataContext as IEventProcess; * if (process != null) * process.ProcessEvent(this, this, CurEvent); */ CurEvent = null; e.Cancel = false; } }
//----------------------------------------------------------------------------------------- // Evénements //----------------------------------------------------------------------------------------- #region IEventProcess // Traite les événements public void ProcessEvent(object from, object _this, IEvent e) { // // Change // Action après le changement d'une entité // if (e is EntityChangeEvent) { EntityChangeEvent ev = e as EntityChangeEvent; // Concerne ce model ? if (ev.Model == app.appModel) { if (ev.Entity is ObjectContent) { OnPropertyChanged("ObjectContentList"); } if (ev.Entity is ParamContent) { CurParamContentList = new ObservableCollection <ParamContent>(curObjectContent.ParamContent); } if (ev.Entity is DatabaseSource) { OnPropertyChanged("CurDatabaseSource"); } } } // // Pré-Create // Préprare la création d'une nouvelle entité (avant édition des champs) // if (e is EntityPreCreateEvent) { EntityPreCreateEvent ev = e as EntityPreCreateEvent; // Alloue l'entité if (ev.Entity == null) { ev.Entity = app.appModel.CreateEntity(ev.EntityName); } // Ajoute l'instance au model app.appModel.Add(ev.Entity); // Affecte le status de création ev.Entity.EntityState = EntityState.Added; // Initialise les données par défaut if (ev.Entity is IEntityPersistent) { IEntityPersistent p = ev.Entity as IEntityPersistent; //Affecte la source de données à la nouvelle entitée p.Factory = app.appModel.project.Factory; } if (ev.Entity is ObjectContent) { ObjectContent entity = ev.Entity as ObjectContent; // Ajoute au projet en cours app.Project.AddObjectContent(entity); // Génére un identifiant unique entity.Id = Guid.NewGuid().ToString("N"); foreach (var p in entity.ParamContent) { p.Id = Guid.NewGuid().ToString("N"); } } if (ev.Entity is ParamContent) { ParamContent entity = ev.Entity as ParamContent; CurObjectContent.AddParamContent(entity); // Génére un identifiant unique entity.Id = Guid.NewGuid().ToString("N"); } if (ev.Entity is DatabaseSource) { DatabaseSource entity = ev.Entity as DatabaseSource; app.Project.AddDatabaseSource(entity); if (app.States.SelectedDatabaseSourceId == null) { app.States.SelectedDatabaseSourceId = app.Project.DatabaseSource.First().Id; } } // Actualise l'interface app.ProcessEvent(this, this, new EntityChangeEvent(e, ev.Entity, app.appModel)); } // // Create // Crée la nouvelle entité (après édition des champs) // if (e is EntityCreateEvent) { EntityCreateEvent ev = e as EntityCreateEvent; if (ev.Entity != null) { // Valide le status de création ev.Entity.EntityState = EntityState.Unmodified; // Actualise l'interface app.ProcessEvent(this, this, new EntityChangeEvent(e, ev.Entity, app.appModel)); } } // // Pré-Update // Les données de l'entité vont êtres modifiées // if (e is EntityPreUpdateEvent) { EntityPreUpdateEvent ev = e as EntityPreUpdateEvent; // si l'entité fait partie du model if (ev.Entity != null && app.appModel.Contains(ev.Entity)) { // Préviens l'application app.ProcessEvent(this, this, new EntityChangeEvent(e, ev.Entity, app.appModel)); } } // // Update // Les données de l'entité sont modifiées // if (e is EntityUpdateEvent) { EntityUpdateEvent ev = e as EntityUpdateEvent; // si l'entité fait partie du model if (ev.Entity != null && app.appModel.Contains(ev.Entity)) { // Test la validité des champs if (ev.Entity is IEntityValidable) { string error; IEntityValidable v = ev.Entity as IEntityValidable; if (!v.IsValid(out error)) { app.ProcessException(new ApplicationException(error)); return; } } // Valide le status de création ev.Entity.EntityState = EntityState.Unmodified; // Actualise l'interface app.ProcessEvent(this, this, new EntityChangeEvent(e, ev.Entity, app.appModel)); } } // // Delete // Supprime l'entité // if (e is EntityDeleteEvent) { EntityDeleteEvent ev = e as EntityDeleteEvent; // si l'entité fait partie du model if (ev.Entity != null && app.appModel.Contains(ev.Entity)) { // Supprime du model app.appModel.Remove(ev.Entity); // Actualise l'interface app.ProcessEvent(this, this, new EntityChangeEvent(e, ev.Entity, app.appModel)); } } // Implémente la gestion du copier coller EventProcess.ProcessCopyPasteEvents(app, this, app.appModel, from, _this, e); }
public static void initialize(EntityRegistrationComponent p_entityRegistrationComponent) { EventQueue.enqueueEvent(EventQueueContainer.TurnTimelineQueue, EntityCreateEvent.alloc(p_entityRegistrationComponent.onEntityCreated)); }