private void LogEvent(IResource resource, IResourceRequest irr, ResourceAction action) { if (s_diagnostics) { _Debug.WriteLine(m_model.Executive.Now + " : Resource Tracker " + m_target.Name + " (" + m_target.Guid + ") logged " + action + " with " + irr.QuantityDesired + "."); } ResourceEventRecord rer = new ResourceEventRecord(m_model.Executive.Now, resource, irr, action); if (m_rerFilter == null || m_rerFilter(rer)) { m_record.Add(rer); if (s_diagnostics) { _Debug.WriteLine("\tLogged."); } } else { if (s_diagnostics) { _Debug.WriteLine("\tFiltered out."); } } }
private void LogEvent(IResource resource, IResourceRequest irr, ResourceAction action) { ResourceEventRecord rer = new ResourceEventRecord(m_model.Executive.Now, resource, irr, action); if (m_rerFilter != null && m_rerFilter(rer)) { m_record.Add(rer); } }
/// <summary> /// Copy constructor /// </summary> /// <param name="source">Source RER to use as as a base</param> /// <param name="replacementResource">The resource that replaces the resource from the source RER in the newly constructed ResourceEventRecord.</param> public ResourceEventRecord(ResourceEventRecord source, IResource replacementResource) { When = source.When; ResourceGuid = source.ResourceGuid; m_quantityDesired = source.QuantityDesired; m_quantityObtained = source.QuantityObtained; m_capacity = source.Capacity; Available = source.Available; Requester = source.Requester; RequesterGuid = source.RequesterGuid; Action = source.Action; m_tag = source.Tag; m_tagGuid = source.TagGuid; SerialNumber = source.SerialNumber; m_resource = replacementResource; ResourceGuid = replacementResource.Guid; }
/// <summary> /// Standard constructor /// </summary> /// <param name="trackers">The trackers to consolidate</param> public ResourceTrackerAggregator(IEnumerable trackers) { m_records = new ArrayList(); m_targets = new ArrayList(); // ReSharper disable once LoopCanBePartlyConvertedToQuery (Much clearer this way.) foreach (IResourceTracker rt in trackers) { foreach (ResourceEventRecord rer in rt.EventRecords) { if (!m_targets.Contains(rer.Resource)) { m_targets.Add(rer.Resource); } m_records.Add(rer); } // end foreach rer } // end foreach rt m_records.Sort(ResourceEventRecord.BySerialNumber(false)); } // end ResourceTrackerAggregator
/// <summary> /// Loads a collection of resource event records, and then sorts them by serial number in ascending order. /// </summary> /// <param name="bulkRecords">The collection of resource records to be added to this collection.</param> public void BulkLoad(ICollection bulkRecords) { BulkLoad(bulkRecords, true, ResourceEventRecord.BySerialNumber(false)); }
/// <summary> /// Loads a collection of resource event records, and then sorts them by serial number in ascending order. /// </summary> /// <param name="bulkRecords">The collection of resource records to be added to this collection.</param> /// <param name="clearAllFirst">If true, this tracker's ResourceEventRecord internal collection is cleared out before the new records are added.</param> public void BulkLoad(ICollection bulkRecords, bool clearAllFirst) { BulkLoad(bulkRecords, clearAllFirst, ResourceEventRecord.BySerialNumber(false)); }
private static bool m_allEvents(ResourceEventRecord candidate) { return(true); }
private static bool m_filterOutRequests(ResourceEventRecord candidate) { return(candidate.Action != ResourceAction.Request); }
private static bool m_acquireAndReleaseOnly(ResourceEventRecord candidate) { return(candidate.Action == ResourceAction.Acquired || candidate.Action == ResourceAction.Released); }
/// <summary> /// Creates a new instance of the <see cref="T:RerEditor"/> class. /// </summary> /// <param name="rer">The rer.</param> internal RerEditor(ResourceEventRecord rer) { m_rer = rer; }