Esempio n. 1
0
 public FBucket Add(FBucket bucket, FOperation fOperation)
 {
     if (bucket == null)
     {
         throw new Exception($"Bucket {bucket.Name} does not exits");
     }
     bucket = bucket.AddOperation(fOperation);
     return(bucket);
 }
Esempio n. 2
0
        internal FBucket RemoveOperations(FBucket bucket, List <FOperation> operationsToRemove)
        {
            foreach (var operation in operationsToRemove)
            {
                DecreaseBucketSize(operation.RequiredCapability.Id, operation.Operation.Duration);
                bucket = bucket.RemoveOperation(operation);
            }

            return(bucket);
        }
Esempio n. 3
0
        public (FBucket, List <FOperation>) RemoveNotSatisfiedOperations(FBucket bucket, Agent agent)
        {
            List <FOperation> notSatisfiedOperations = new List <FOperation>();
            var bucketOperations = bucket.Operations.ToList();

            foreach (var operation in bucketOperations)
            {
                agent.DebugMessage(msg: $"In RemoveNotSatisfiedOperations check the operation {operation.Key} {operation.Operation.Name} in {bucket.Name} has" +
                                   $"| Satisfied: {operation.StartConditions.Satisfied} " +
                                   $"| ArticleProvided: {operation.StartConditions.ArticlesProvided} " +
                                   $"| PreCondition: {operation.StartConditions.PreCondition} ", CustomLogger.JOB, LogLevel.Warn);

                if (!operation.StartConditions.Satisfied)
                {
                    agent.DebugMessage(msg: $"Operation {operation.Key} in {operation.Operation.Name} in {bucket.Name} will be removed because it is not satisfied!", CustomLogger.JOB, LogLevel.Warn);

                    notSatisfiedOperations.Add(operation);
                    bucket = bucket.RemoveOperation(operation);
                }
            }
            return(bucket, notSatisfiedOperations);
        }
Esempio n. 4
0
 public void Replace(FBucket bucket)
 {
     _jobConfirmations.Single(x => x.Job.Key == bucket.Key).Job = bucket;
 }
Esempio n. 5
0
 public bool HasLaterForwardStart(FBucket bucket, FOperation operation)
 {
     return(operation.ForwardStart >= bucket.ForwardStart);
 }
Esempio n. 6
0
 public bool HasCapacityLeft(FBucket bucket, FOperation operation)
 {
     return(bucket.BackwardStart - bucket.ForwardStart > ((IJob)bucket).Duration + operation.Operation.Duration);
 }
Esempio n. 7
0
 private bool ExceedMaxBucketSize(FBucket bucket, FOperation operation)
 {
     return(((IJob)bucket).Duration + operation.Operation.Duration <= bucket.MaxBucketSize);
     //GetBucketSize(bucket.RequiredCapability.Id);
 }