Example #1
0
        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.");
                }
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        /// <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;
        }
Example #4
0
        /// <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
Example #5
0
 /// <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));
 }
Example #6
0
 /// <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));
 }
Example #7
0
 private static bool m_allEvents(ResourceEventRecord candidate)
 {
     return(true);
 }
Example #8
0
 private static bool m_filterOutRequests(ResourceEventRecord candidate)
 {
     return(candidate.Action != ResourceAction.Request);
 }
Example #9
0
 private static bool m_acquireAndReleaseOnly(ResourceEventRecord candidate)
 {
     return(candidate.Action == ResourceAction.Acquired || candidate.Action == ResourceAction.Released);
 }
Example #10
0
 /// <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;
 }