/// <summary> /// Data is assumed to be there, so use TryDelete /// </summary> /// <param name="service"></param> protected virtual void CleanupDataPostInitialization(IOrganizationService service) { var totalWatch = new Stopwatch(); totalWatch.Start(); var requests = new OrganizationRequestCollection(); foreach (var id in EntityIds.Where(e => e.Key != "businessunit").SelectMany(entityType => entityType.Value)) { requests.Add(new DeleteRequest { Target = Entities[id] }); } if (requests.Any()) { var response = (ExecuteMultipleResponse)service.Execute( new ExecuteMultipleRequest { Settings = new ExecuteMultipleSettings { ContinueOnError = true, ReturnResponses = false }, Requests = requests, }); ThrowExceptionForFaults(response, requests); totalWatch.Stop(); Logger.WriteLine("Total Time to delete {0} entities of types {1} (ms): {2}", requests.Count, requests.Select(s => ((DeleteRequest)s).Target.LogicalName).Distinct().ToCsv(), totalWatch.ElapsedMilliseconds); } List <Guid> businessIds; if (!EntityIds.TryGetValue("businessunit", out businessIds)) { return; } foreach (var id in businessIds) { service.DeleteBusinessUnit(id); } }
public void ParseStream(MemoryStream memory) { var reader = new BinaryReader(memory); EntityId = (EntityIds)reader.ReadByte(); WorldId = reader.ReadInt16(); entityToUse = null; if (reader.ReadBoolean()) //is this entity using another entity? { entityToUse = Game.EntManager.EntityContainer[reader.ReadInt16()]; } Position = new Vector2f(reader.ReadSingle(), reader.ReadSingle()); Health = reader.ReadByte(); ParseCustomStream(reader); }
public override THandle GetOrAdd(TEntity entity) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } if (_entityNames.TryGetValue(entity, out var existingEntity)) { // if it's exactly the same exchange if (Entities.TryGetValue(entity, out existingEntity)) { return(existingEntity); } throw new ArgumentException($"The {TypeMetadataCache<TEntity>.ShortName} entity settings did not match the existing entity"); } EntityIds.Add(entity.Id, entity); Entities.Add(entity, entity); _entityNames.Add(entity, entity); return(entity); }
public IEnumerable <BaseEntity> GetEntities() { return(EntityIds.Select(entityId => BaseNetworkable.serverEntities.Find(entityId)).OfType <BaseEntity>()); }