private void Apply(ItemUpdatedEvent itemUpdatedEvent) { var itemInstance = ItemInstances.FirstOrDefault(ii => ii.ItemDefinitionCode == itemUpdatedEvent.ItemDefinitionCode); var isNull = itemUpdatedEvent.Value == null || string.IsNullOrEmpty(itemUpdatedEvent.Value.ToString()); if (itemInstance != null && isNull) { _itemInstances.Remove(itemInstance); } if (itemInstance == null) { itemInstance = new ItemInstance(itemUpdatedEvent.ItemDefinitionCode, itemUpdatedEvent.Value, itemUpdatedEvent.IsRequired); if (!isNull) { _itemInstances.Add(itemInstance); } } else { itemInstance.Apply(itemUpdatedEvent); } var skippingContext = new SkippingContext(); if (_cachedRuleEngineExecutor == null) { var assessmentRuleCollectionFactory = new AssessmentRuleCollectionFactory(); _cachedRuleEngineExecutor = new RuleEngineExecutor <AssessmentInstance> ( this, assessmentRuleCollectionFactory.CreateRuleCollection(this.AssessmentName)); } _cachedRuleEngineExecutor .ForRuleSet("ItemUpdatedRuleSet" + itemInstance.ItemDefinitionCode) .WithContext(itemInstance, itemInstance.ItemDefinitionCode) .WithContext(skippingContext) .Execute(); skippingContext.SkippedItemDefinitions.ForEach( item => { if (item.GetIsRequired() && !_skippedItemDefinitions.Contains(item)) { _skippedItemDefinitions.Add(item); } if (ItemInstances.Any(i => i.ItemDefinitionCode == item.CodedConcept.Code)) { UpdateItem(item, null); } }); skippingContext.UnSkippedItemDefinitions.ForEach(item => _skippedItemDefinitions.Remove(item)); }
private void Apply(ItemUpdatedEvent itemUpdatedEvent) { var itemInstance = ItemInstances.FirstOrDefault(ii => ii.ItemDefinitionCode == itemUpdatedEvent.ItemDefinitionCode); if (itemInstance == null) { _itemInstances.Add(new ItemInstance(itemUpdatedEvent.ItemDefinitionCode, itemUpdatedEvent.Value)); } else { itemInstance.Apply(itemUpdatedEvent); } }
private ItemInstances EquipSkinnedItem(ItemObject itemObject) { if (itemObject == null) { return(null); } Transform itemTransform = combiner.AddLimb(itemObject.modelPrefab, itemObject.boneNames); ItemInstances instances = new ItemInstances(); instances.items.Add(itemTransform); return(instances); }
private ItemInstances EquipMeshItem(ItemObject itemObject) { if (itemObject == null) { return(null); } Transform[] itemTransforms = combiner.AddMesh(itemObject.modelPrefab); if (itemTransforms.Length > 0) { ItemInstances instances = new ItemInstances(); instances.items.AddRange(itemTransforms.ToList <Transform>()); return(instances); } return(null); }
private ItemInstances EquipSkinnedItem(ItemObject itemObject) { if (itemObject == null) { return(null); } Transform itemTransform = combiner.AddLimb(itemObject.modelPrefab, itemObject.boneNames); ItemInstances instances = itemTransform.gameObject.AddComponent <ItemInstances>(); if (instances != null) { instances.items.Add(itemTransform); } return(instances); }
private ItemInstances EquipMeshItem(ItemObject itemObject) { if (itemObject == null) { return(null); } Transform[] itemTransforms = combiner.AddMesh(itemObject.modelPrefab); if (itemTransforms.Length > 0) { ItemInstances instances = new ItemInstances(); instances.items.AddRange(itemTransforms.ToList <Transform>()); //foreach (Transform t in itemTransforms) //{ // instances.items.Add(t); //} //instances.transform.parent = transform; return(instances); } return(null); }