public long GetBucketSize(int capabilityId) { if (CapabilityBucketSizeDictionary.TryGetValue(capabilityId, out var value)) { return(value.Size); } // else throw new Exception("No bucket size Found!"); }
public void DecreaseBucketSize(int capabilityId, long duration) { if (CapabilityBucketSizeDictionary.TryGetValue(capabilityId, out var value)) // update { value.Duration -= duration; if (value.Duration < 0) { throw new Exception("Capability capacity for " + value.Capability.Id + " negativ"); } CalculateBucketSize(); } }
public void AddOrUpdateBucketSize(M_ResourceCapability capability, long duration) { if (CapabilityBucketSizeDictionary.TryGetValue(capability.Id, out var value)) // update { value.Duration += duration; CalculateBucketSize(); return; } // Create var bucketSize = new BucketSize { Duration = duration, Size = duration, Capability = capability }; CapabilityBucketSizeDictionary.Add(capability.Id, bucketSize); CalculateBucketSize(); }